Pythonのお勉強 Part55
■ このスレッドは過去ログ倉庫に格納されています
>>579
ざーっと調べてみて,pyinstallerでイケるような気がしてきました
問題は望みのguiを作れるかですね... >>580
いけるよ。
wxPythonで作ったツールをpyInstallerでexe化して使ってもらってる。
もちろん、使う側にはPython環境入ってない。 >>581
遅くにありがとう
mac用に.appでも出力できるんですよね? みなさんありがとうございます
https://qiita.com/gollowars/items/387d5fecd29c26cace99
この記事を見て,qtとpyinstallerでmac用アプリにも出力できるのかあと思ったのですが大丈夫ですよね?
周りにlinuxユーザーがいないので,macとwindowsで動けば充分です とりあえずwin10 64bitで、py 3.6.1とpyinstaller3.3ならなんの問題もなくexe化可能。
win上でmac向けを直接作るのは無理。
環境一式を固めるだけなので、mac用を作りたければ、mac上のpy環境が必要。
…だと思う。 yamlが非常に便利でよく使いっているのだけど,
標準ライブラリじゃないんだよね.
同じような事を標準ライブラリでやりたい場合
なんかいい方法ありますか?
例えば dl = [{'1':1}, {'2':2}] みたいな変数を
サクっとファイルに読み書きできるような機能ってありますか? >>590
今まさに,これを調べてた!
これでいいんですね!ありがとう! >>587
ID変わります
僕はmacユーザーなのでその点は大丈夫そうです
必要なパッケージも分かったのでだらだら実践に移ろうと思います
ありがとうございました PyQtでラベルをうごかしたりアニメーションさせたりってできますの? pandasでExcelのVLOOKUPみたいな事をしたいのですが
どうやったらできますか。 aaa={2,6,9}というリストに、
fff()関数に渡して、77を加えたいのですが、
エラーが出ます。どうすればいい?
AttributeError: 'set' object has no attribute 'append'
aaa={2,6,9}
def fff(bbb):
bbb.append(77)
print(bbb)
fff(aaa) global aaa加えてもダメ。
aaa={2,6,9}
def fff(bbb):
global aaa
bbb.append(77)
print(bbb)
fff(aaa) >aaa={2,6,9}というリストに
{ } は、set・集合だろ
>AttributeError: 'set' object has no attribute 'append'
だから、setには、append が無い
リストは、[2, 6, 9] コ−ド打ち間違いでした。
リスト[2, 6, 9]だと、出来ますか?
今、通勤中で、パソコンがないので。。。 aaa = [2,6,9]
def fff(bbb):
bbb.append(77)
print(bbb)
fff(aaa)
これでできた これは、出来る?
グローバルなリストを、
関数内で、添え字で代入だけど。
今、パソコンがない環境なのです。。。
aaa = [2,6,9]
def fff(bbb):
bbb [1] = 77
print(bbb)
fff(aaa) >>608
下請けじゃないから試してないけど、多分できない。
関数内でglobalしとけば可能なはず。 Pythonで物理乱数を発生させたいと考えてます。
できるだけお金を掛けずに簡単にやる方法ってありませんか。
当方、プログラミングは最近始めたばかりの初心者です。
よろしくお願いします。
私が考えてるのはマイクなどで音を拾って音の周波数から乱数を発生。。。
難しいですかね?どなたかやり方教えてください。 611、612さん、thx!
出来ました!
パソコン持って来てないけど、
分かりました(^-^) >>613
/dev/randomのソースを読む
アホは普通の人より多く金を払わなければ存在を認められないんだよ
それが嫌ならアホを脱出しろ >>616
ですよね。。。
スキルのない奴が人をアホ呼ばわりとか。。。 どなたかDAISOで揃うもので物理乱数を発生させる方法をお願いします。m(_ _)m サイコロとかはなしでお願いします。
自動的に乱数を発生させたいのです。 ID:TdwKXjoL
ID:29y3RqyU
ID:EhnDmFZw
ID:oiJ7/Utq 普通はrdrandとか使うんじゃないか
まさにrdrandっていうモジュールがPyPIにあるから
それ使えばいいだろ 単位時間の音声データのハッシュを計算する。
素人だから本当にこれで良いのか知らないけど。 ググったら/dev/randomもハードウェア乱数生成器ぽい >>621
それってどういう仕組なんですか。
結局、CPUの擬似乱数を取得してるのと違うんでしょうか?
>>622
それ、しかないんですかね。。。
やり方キボンですw >>624
rdrandも>>622みたいな感じで生成してるっぽい >>625
そうなんですか!!
使ってみます。。
ありがとん。 >>624
https://news.mynavi.jp/article/20110921-ivy_bridge/
Ivy Bridgeのrdrandの仕組みはここに簡単に書いてあるが
ただ電気回路の知識がないと理解できなさそう >>617
愛恥人とかいう馬糞野郎が何か言っているが
/dev/randomはハードウェア乱数生成器だぞ
お前のような人間未満の低脳障害者が人間様を疑うなんぞ100年早い
新小岩駅から成田エクスプレスに飛び込んで死ね グローバル変数aaaを、関数を使って、888にしたい。
以下のコ−ドでは、出来ません。
どうすれば、良いでしょうか?
aaa = 0
def fff(bbb):
global aaa
bbb = 888
fff(aaa)
print(aaa) 俺、さっぱり分からんけど、とりあえず妄想で
def fff(bbb):
global aaa
aaa = 888
で良いんじゃないのか pyqtとpyinstallerでアプリ作りたい者です
が、pyqtにmatplotlibのグラフを表示できなくて一旦棚上げしようと思います
おれにはまだ早かった... 632ですが、自己解決しました。
関数の戻り値を書けばできました。 pyqtにmatplotlibのグラフを表示
wxなら簡単 >>639
わからないならレスしないでくださいうざいだけです >>636
matplotlib qt4agg
とかで検索すると幸せになれるかもしれない >>638
wxaggもqt4aggもmatplotlibの表示先を変えるための実装なので、殊更wxの方が簡単なわけではないと思うけど。 >>641は意味わかるの?
俺はさっぱりなんだが。 https://www.tutorialspoint.com/pyqt/pyqt_qclipboard.htm
ここのexampleのソースコードさがしてるんだけど、このサイトのどこかにありますか?探しても見つからない。
これと同じものが書ければ解決なんですが Numpyで二つの一次元配列を要素順(縦方向)に比較して何個一致してるか計算したいのですが、
どうしたら良いのでしょうか?どなたかご教授お願いします。
[1,2,3,4,5]
[1,2,3,5,4]
この場合1,2,3が一致してるので、一致率は6割。
こんな感じの計算をしたいのです。 >>650
なんか自分ではやりたくない宿題・課題を俺らにやらせようって感じを受けるんだが...
>どうしたら良いのでしょうか?
日本語でそれをやる手順を書けるのか?
実はそれすらわからないのか? こうなるとPython以前のことになる 宿題じゃなくて自主的に勉強してます。
煽りはやめて>< 自分なりに頑張って勉強してます。
調べてもよくわからなかったので質問させて頂きました。
煽り耐性がないのでマジで凹みます。
本当に煽りはやめてください。。。 まさか、まったくわからないわけではないだろう
どういうアプローチがあると考えて、それはどうしてうまく行かなかったのか書いてみて? ifとforで一個一個比較して一致したものをカウントするという原始的な方法なら思いついたのですが
配列の要素が数十万とかになると計算に凄く時間がかかりすぎて自分はおかしな事をしてると思いました。
Numpyを使えばもっと早く計算できるのではないかと思ったのです。
Numpyで配列同士を除算して1になったものをカウントするという方法も考えましたが
何かもっとよい方法があるのではないかと思って質問するに至りました。 >>657
>>650と話変わってないか?
>>650は要素数5つのリストで,どうしたら良いのでしょうか?(さっぱりわかりませんな感じ)
>>657では実はifとforで一個一個比較する方法でなら出来た(?)、でも、その方法だと
要素が数十万とかになると計算に凄く時間がかかりすぎるから何か時短できるやり方はない? 考え方は別に間違ってないと思うけど、なぜ最後までやってみてから検討しないのか
a=比較対象のリスト1
b=比較対象のリスト2
c=a-b #一致する箇所だけ数値が0になる
count=len(np.where(c==1)[0]) #0の数をカウント
par=count/len(c)*100 #割合を求める >>660
ありがとうございます。
考え方は間違ってなかったんですね!
そのコードを使わせていただきます。 行列にする
aは
1 0 0 0 0
0 2 0 0 0
0 0 3 0 0
0 0 0 4 0
0 0 0 0 5
になる
bは
aは
1 0 0 0 0
0 2 0 0 0
0 0 3 0 0
0 0 0 0 5
0 0 0 4 0
になる
線形代数使って対角線を一発で判断 bは
1 0 0 0 0
0 2 0 0 0
0 0 3 0 0
0 0 0 0 4
0 0 0 5 0
かな
まあがんがれ >>663
線形代数!?
勉強したことないので勉強してみます。
ありがとうございます。
行列にする分、メモリは食いそうですが
速度は早くなるんでしょうか? やっぱ機械学習や、時系列扱う場合線形代数は必須ですよね。。。 >>> import numpy as np
>>> from itertools import zip_longest
>>>
>>> a = [1,2,3,4,5]
>>> b = [1,2,3,5,4]
>>> np.mean([v1==v2 for v1,v2 in zip_longest(a,b)]) * 100
60.0
>>>
>>> import random
>>> c = [random.randrange(1,10) for _ in range(random.randrange(5,10))]
>>> d = [random.randrange(1,10) for _ in range(random.randrange(5,10))]
>>> np.mean([v1==v2 for v1,v2 in zip_longest(c,d)]) * 100
25.0
>>>
>>> c
[1, 1, 5, 2, 8]
>>> d
[1, 2, 7, 2, 9, 5, 1, 1]
>>> >>667
配列の要素数が違っても比較できるんですね。
ありがとうございます。
勉強させていただきます。 動的に処理すればメモリは食わない。
比較して、どういうデータが欲しいのか謎
データ形式はリスト(配列)に1つの値しか入って無い前提で良いの? 既に解決してるだろうけどw
>>650
a=[1,2,3,4,5]
b=[1,2,3,5,4]
c=list(zip(a,b))
d=0
for i in c:
____if int(i[0])==int(i[1]):
________d+=1
print(d/len(c)*100) >>669
そういうものなんですね。メモリは食わないんですか!
比較して何個一致してるか。何%一致してるかを知りたいだけです。
要素数が数十万入った場合も想定して
とにかく今は速度を最優先に考えております。
データはリスト内に1つの前提で構いません。 >>670
いくつか解決策は見つかりましたが
色々なコードを見られるのは勉強になります! ってかw 一行で書けるのかww
地道にfor文回して行く方法しか思い付かない >>665
比較や条件分岐がなくなると爆高速になる こうじゃね
a = np.array([1, 2, 3, 4, 5])
b = np.array([1, 2, 3, 5, 4])
np.sum(a == b) / a.size >>674
そういうものなんですね。
ありがとうございます。頑張ってみます!
>>675
ありがとうございます。
関数を作ってくれたんですね!
コードを勉強させていただきます。
>>676
おぉ。凄くシンプルですね。
Numpyを使うとこんなシンプルにコードが掛けけるんですね?
ありがとうございます。 ■ このスレッドは過去ログ倉庫に格納されています