くだすれPython(超初心者用) その34 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/05/28(日) 20:34:15.87ID:7AoJbiyO
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

前スレ
くだすれPython(超初心者用) その33
http://echo.2ch.net/test/read.cgi/tech/1490424742/
2017/06/19(月) 23:08:14.51ID:BW5wWpcZ
>>454
そういうものって、たいてい非同期だろ。
そんな同期のような書き方で、プログラミングできるのか?

JavaScriptだと、promise, deferred とかになる
2017/06/19(月) 23:21:14.95ID:bnRXUPcP
>>460
Kivy

むしろ、逆の様な気もする。
python自体がアプリ認識で、スマホ上で操作を便利にする感覚に近いかな?
2017/06/19(月) 23:38:27.03ID:pwLSxEVf
>>460
素直にswift覚えろw
464デフォルトの名無しさん
垢版 |
2017/06/19(月) 23:59:49.07ID:rsj2RWOl
>>463
せっかくpythonで勉強したし、pythonで動かしてみたい
初心者にはまだ速いかな?
2017/06/20(火) 00:01:49.64ID:P7wDnhZJ
pythonista 3
がいいよ
46696
垢版 |
2017/06/20(火) 00:45:05.91ID:RsNCz7Uy
度々すみません。
http://aidiary.hatenablog.com/entry/20111001/1317441171
に習って、とりあえず動かしてみました。(__.waveは適当な音源)

import numpy
import wave
from pylab import *

if __name__ == "__main__":
wf = wave.open("___.wav", "rb")
data = wf.readframes(wf.getnframes())
data = frombuffer(data, dtype="int16")
length = float(wf.getnframes()) / wf.getframerate() # 波形長さ(秒)

N = 512
hammingWindow = np.hamming(N)

pxx, freqs, bins, im = specgram(data, NFFT=N, Fs=wf.getframerate(), noverlap=0, window=hammingWindow)
axis([0, length, 0, wf.getframerate() / 2])
xlabel("time [second]")
ylabel("frequency [Hz]")
show()

当然、上記ウェブサイトと同様にスペクトログラムは表示されるのですが、
任意の時間、周波数における信号強度を画像(色)ではなく数値として取り出すにはどうしたら良いでしょうか。
もっというと、周波数をある値に固定して、その時間-強度変化を取得したいのです。

pxxが信号強度かと思いprintしてみましたが、二次元配列が出力されるだけで、よく理解できず・・・。

ご教示いただければ幸いです。
よろしくお願いいたします。
467デフォルトの名無しさん
垢版 |
2017/06/20(火) 08:55:26.45ID:+AWlrcIl
ディクショナリーに、100万件とか1000万件のデータを格納するって普通のことですか?

具体的には、会員分析で、顧客番号をキーにしようと思ってます。

※pandas使えとかはなしで。
2017/06/20(火) 09:19:54.83ID:F/o5mMD4
>>466
そのコードがあって理解できないとか終わってんな
宿題か学生の研究か知らんけど、お前には向いてない諦めろ
2017/06/20(火) 09:45:04.62ID:GRs2Ke5S
>>467
普通の基準はなんだよ
マシンパワー一つ取っても普通なんてスペックはねえけど
2017/06/20(火) 09:49:53.34ID:8wgIueO/
その規模は、プログラミングではない

データベースを使え
471デフォルトの名無しさん
垢版 |
2017/06/20(火) 11:00:31.31ID:dJ4Ib7Ez
1000万件ほどのcsvデータを渡された時、
みんなどうしてるのかなと思って。

標準ライブラリしかなく、わざわざDBに格納するのも面倒なのでね。

ご意見ありがとう。
でも辞書でいきます。
472デフォルトの名無しさん
垢版 |
2017/06/20(火) 11:09:16.68ID:c5g8mlUh
お、そうだな
2017/06/20(火) 12:24:34.93ID:gyJ3zpc0
>>471
とりあえず読み込んでみて処理させてる間に高速化や効率化の方法がないか考える
思いつく前に処理が終わればそれも良し
474デフォルトの名無しさん
垢版 |
2017/06/20(火) 12:25:12.13ID:PW/vl+jd
【悲報】馬鹿のアドバイス、シカトされる
475デフォルトの名無しさん
垢版 |
2017/06/20(火) 12:47:28.92ID:5s5M5H6z
>>473
なるほど
2017/06/20(火) 13:04:45.87ID:LT/bq87Z
>>466
pxxは描画される2次元のグラフを2次元配列にいれてるだけ

てか単なる関数の使い方はまず公式のリファレンスを見よう
https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.specgram

つまり時刻t[t_idx]での周波数f[f_idx]の成分がspectrum[f_idx][t_idx]ってことだろう

俺はこのライブラリは使ったことはないがリファレンスみりゃ使わなくてもわかる
なのでまずはリファレンスを見ましょう
2017/06/20(火) 15:37:55.69ID:jPjAABDm
会員分析で、顧客番号をキー(履歴も残すと考えて)
辞書じゃ処理的に無理が来るんじゃない?

種類A〜上限(1000~2000件)管理番号1〜200隔離で区切って、それぞれ格納
それから、使用頻度で 種類ごとの 上位へ

csvデータなら、面倒だけどエクセルに入れて、別形式で取り出して、再加工したら?
1000万件の一斉ソート(探査)だと、メモリとCPU管理必要かな?

10万〜30万件 ぐらいでフリーズしない?
478デフォルトの名無しさん
垢版 |
2017/06/20(火) 16:47:25.88ID:I+uIvKHM
l=[[240,550,"あ"],[260,545,"い"],[280,547,"う"],[240,647,"か"],[260,655,"き"],[280,650,"く"]]
上記の様な配列を数値部分の値を元に「あ、い、う、か、き、く」となるようにソートしたいのですが、どのようにしたら良いのでしょう?
(2番目の数値の誤差を指定範囲で許容するソート)
2017/06/20(火) 18:55:15.20ID:jPjAABDm
>>478
数値部分が2つ有るよ
 どこの数値を基準にしてる?
2番目の数値の誤差って何?
 どのように許容するの?
望む、出力結果はどんな形になる?

数値の値を元にしたら、「あいうかきく」にはならないんじゃ無いかな?
[あ 240] と [か 240] が衝突しない?

l配列のl[n][0]を基準にしてソートを行い、l[n][1]が許容範囲になる数値?
どんな計算方式でソート結果を出したいの? 基準値+許容範囲?
2017/06/20(火) 19:42:30.03ID:WO1V62GS
>>471
行ごとに読み込みながらですめばそれでok

ソートとか入るならDBに突っ込む
SQLiteは結局メモリ処理になりそうだから駄目かも知れんね
481デフォルトの名無しさん
垢版 |
2017/06/20(火) 19:42:30.52ID:M9InSE7Z
>477
回ったよ。

ざっくりメモリ量を推計すると、
10000000会員×8バイト(変数長)×10変数
=0.74ギガ

まあメモリにはのる気がします。
ちなみにpandas使ってもメモリの問題は辞書と変わらない気がしますが、辞書はメモリ効率悪いのですか?
482デフォルトの名無しさん
垢版 |
2017/06/20(火) 19:43:19.37ID:M9InSE7Z
471
あざーす。
483デフォルトの名無しさん
垢版 |
2017/06/20(火) 20:36:59.64ID:jPjAABDm
>>481
その計算方式 合ってるけど、間違ってるよ。
実際に回したら分かるけど、内部はソレで良いけど、外部の計算が無いんじゃない?

ガーベージコレクションの影響で一時的に重くならない?
メモリリークが起きた場合に再起動できない場合とか考えてる?
1000万件のデータを扱うなら、気安く再起動できないんじゃない?

あと、ちょっと遅い
 (俺が話してるのは webの話だけど。)
484デフォルトの名無しさん
垢版 |
2017/06/20(火) 21:03:31.57ID:pPHD0ZXr
(なんとなくメモリの心配した方がデキる人っぽいから…)
2017/06/20(火) 21:08:48.50ID:RnxrF89h
支離滅裂だな
これが…いや何でもない
486デフォルトの名無しさん
垢版 |
2017/06/20(火) 21:09:32.30ID:eFPHXaQL
まあ実際、分析用途だと特にメモリがボトルネックになるんだよ。

SASみたいに、メモリに乗せない(それでいてある程度高速)で処理できるライブラリないのかな?
487デフォルトの名無しさん
垢版 |
2017/06/20(火) 21:11:47.77ID:jPjAABDm
ごめん、勘違いしてた。忘れてくれ(笑)
読みなおしたが何言ってるのは不明w
2017/06/20(火) 21:40:29.34ID:jPjAABDm
(中途半端な知識で混乱)
2017/06/20(火) 22:37:46.30ID:zvrJQkfX
urllib.request.urlopen()関数で開いたWebページが実際にはリダイレクトされてる場合、
リダイレクト先のURLに非ASCII文字が含まれているために
改めて関数内部でGETする際に 'UnicodeEncodeError' になるんだけど、
これは対処方法はないかなぁ。

【GYAO! MUSIC LIVE】椎名林檎 最新LIVE厳選集!
リクエストしたURL: https://gyao.yahoo.co.jp/player/00101/v13809/v0871400000000548615/
実際のURL    : https://gyao.yahoo.co.jp/music-live/player/sheenaringo%E2%80%8B
※配信終了日:2017年6月22日

"%E2%80%8B" はゼロ幅スペース文字ということで、サイト制作時のミスだよね。
文字化けするかもしれないので、大文字では sheenaringo の後に "%E2%80%8B" でよろしく。
490478
垢版 |
2017/06/21(水) 08:59:04.72ID:sVQKO9TS
>>479
ただ2番目の数値は547-550の範囲、647-655の範囲で各々同一値として扱い
1番目の数値の順番でソートしたいのです。
望む結果は>>478の通りです。
2017/06/21(水) 13:24:23.84ID:Qj7QlmB0
あーっとね
説明しなくていい(どうせ正確じゃないから)
入力と出力をPythonのコードで示して
492デフォルトの名無しさん
垢版 |
2017/06/21(水) 13:59:24.39ID:YF64DZs8
0.00001が1e-5って表示されるのは何でですか?
0.00001って表示させる方法ないですか?
2017/06/21(水) 15:30:07.45ID:8gA2enTc
パイソン歴2日の俺が答えます。

print("0.00001")
2017/06/21(水) 15:50:52.66ID:7vvbwj4l
>>492
https://docs.python.jp/3/library/string.html#formatspec

print("{0:.5f}".format(0.00001))
495デフォルトの名無しさん
垢版 |
2017/06/21(水) 16:58:24.83ID:+vBL1MVS
>>494
うーん・・・・
"%f" % 0.00001
> '0.000010'

"%f" % 0.0000001
> '0.000000'

"{}".format(0.00005)
> 1e-05
2017/06/21(水) 20:19:00.48ID:Pa7TD1ZO
>>478
>>490
l.sort(key=lambda x: (x[1] // 100, x[0]))
497デフォルトの名無しさん
垢版 |
2017/06/21(水) 21:04:22.89ID:0b3SfvhC
配列内の数値を探すプログラム

困ってる点
indexを使用したら、エラーが帰って来ます。

list=[1,1,0,1]
for i in range(len(list)):
list[i].index(0)

結果 エラー
AttributeError: 'int' object has no attribute 'index'

対応の仕方は有りませんか?
2017/06/21(水) 21:08:41.14ID:yIJHEJIb
list.index(0)
をしたいのでは?
2017/06/21(水) 21:09:35.02ID:v/p+kQSo
>>497
なにがしたいのか分からん
配列内で0が最初に出てくるインデックスを知りたいならlist.index(0)だけだが
2017/06/21(水) 21:28:59.71ID:7vvbwj4l
>>495
なにがうーんなの?
全部想定通りじゃん
501デフォルトの名無しさん
垢版 |
2017/06/21(水) 21:38:51.47ID:0b3SfvhC
>>499
ありがとうございます。
簡単な記述ミスでした。
502デフォルトの名無しさん
垢版 |
2017/06/21(水) 21:39:30.32ID:0b3SfvhC
>>498
ありがとうございました。
503デフォルトの名無しさん
垢版 |
2017/06/22(木) 09:24:56.34ID:r6gWLAjs
>>500


"%f" % 0.0000001
> '0.000000'

これじゃ困るんですよ
2017/06/22(木) 10:05:02.76ID:xx9+2MGz
>>503
コンピュータ内の少数の表現方法知れば分かるが
2進数では例えば0.1とか0.000001は正確には表せない、もっと言うと正確に表すには無限の桁が必要になる
なので0.1って書いてもコンピュータ内では正確に0.1ではなく、それを厳密に10進数に戻しても例えば0.1000000000001みたいになるだけ

なので原理的に有効桁を指定してどこかで桁を切らないと意味ある10進数表現は得られない

%fだけ指定するとデフォルトで少数点以下6桁までを有効桁にするのでそうなる
それ以上の精度が必要ならそれを自分で明示するだけ
2017/06/22(木) 13:51:49.94ID:F+5P0HPN
python3はじめたんだけど、テキストエディタに書いた文をpythonにドラッグドロップしてもinvalid syntaxって出て反映されない
同じ文を直接打ち込むと反映される
どうして?
2017/06/22(木) 13:54:18.90ID:F+5P0HPN
print('hello')です
2017/06/22(木) 16:21:07.91ID:LNMroE4W
よく分からんから、動画でアップしてくれ
2017/06/22(木) 16:51:30.20ID:nC3mvJqL
全く問題ない。@Mac OS X
エラーがおきそうなパターンをいくつか試したが、invalid syntaxを出す事自体が難しい。

>>506のをそのままドロップしても駄目?
2017/06/22(木) 17:07:16.42ID:+s9bYYLy
>>504
それなら1も何度も足し算してたらいつか間違った数になるのか?
2017/06/22(木) 17:17:50.68ID:RQhdYQq6
教えたがり、カモンヌ
2017/06/22(木) 17:26:08.06ID:+s9bYYLy
整数って考えてみたら0001なら1、0010なら2、0011なら3みたいになるからそれは起こりえないか
でも、内部処理でこれをやれば、小数点でも問題なく表現できるんじゃない?
そう言えば、このバグと同じ原理かも知れないが、Excelもアップデートしないと間違った値返してたよな
2017/06/22(木) 17:34:27.69ID:VeGokZwW
http://qiita.com/nnahito/items/ad1428a30738b3d93762
上の「ウインドウが開くプログラム」ですが
IDLEにコピペして実行するとちゃんと開くんですが、pyファイルにして保存
-> それクリック で実行しようとすると開きません
何が悪いんでしょうか (´・ω・`)
2017/06/22(木) 17:42:33.64ID:87zuWnNh
メモ帳でUTF保存してBOM付いてエラーとエスパーしてみる
514512
垢版 |
2017/06/22(木) 18:13:46.12ID:VeGokZwW
すいません質問撤回します
別のパソコンだと出来たんで、プログラムじゃなく個別の環境の問題らしいっす
お騒がせしました
2017/06/22(木) 19:51:54.17ID:a60c/QM7
tkが入ってないとか?
端末(コマンドプロント)から入力
pip install tk
pip install Tkinter

ソースへ
import tk
import Tkinter

pipが入ってないと実行できないかも
2017/06/22(木) 19:55:37.57ID:a60c/QM7
小数点の話は indico 使ってるとか?
517デフォルトの名無しさん
垢版 |
2017/06/22(木) 20:41:20.06ID:mES4Yfh4
>>511
そう言うのは10進少数とか何だったか忘れたが、速さより正確さ重視の金融系とかで使われる。
2017/06/22(木) 21:04:29.84ID:SwSvr5eO
>517

python なら、decimal パッケージだね。標準ライブラリに入ってる。
COBOLも、十進小数の扱いが得意なんだっけか。
2017/06/22(木) 21:27:43.31ID:2+0Xuto0
>>513
BOMあっても動作に支障はない
2017/06/22(木) 21:32:49.57ID:a60c/QM7
>>512
コマンドプロントが一瞬で表示されて消える
と、俺もエスパー
521デフォルトの名無しさん
垢版 |
2017/06/22(木) 21:41:24.42ID:Q2JZu1ra
超初心者向けの本を教えてくれー
2017/06/22(木) 22:10:19.22ID:ow9wJ2QC
このへんは基本

浮動小数点
http://docs.python.jp/3/tutorial/floatingpoint.html
2017/06/22(木) 22:14:59.52ID:9sdv08iU
python スタートブック
2017/06/22(木) 23:03:44.39ID:Y4Uj4GH4
>>517
プログラミング以前の問題としてお金の計算には絶対に少数は使うなって教わったんだがどういう用途で使うの?
2017/06/22(木) 23:18:59.86ID:a60c/QM7
>>521
どうしても、紙媒体にしたいなら、
 公式サイトからドキュメントを自宅のプリンターで印刷

Python 3.6.1 ドキュメント(日本語版,英語版)どちらでも
https://docs.python.jp/3/

>>524
為替とか株の数値だと思ったが、消費税とかを不正に操作する場合は
あえて、小数点の使う。後は普通に9円,10円の消費税を切り上で計算しない場合
2017/06/22(木) 23:33:52.12ID:YBs7nCvC
金利計算なら小数を扱うだろう?
犯罪になったのは、それで小数点以下だったかの端数を自分の口座に入れたら億万長者になってバレたって話だったと思う
2017/06/22(木) 23:46:32.98ID:wU+s9dL9
正確性が求められるところで使うなっていうのは浮動小数点数
2017/06/23(金) 00:08:50.45ID:mV7/Pm52
>>527
それは言われてるな
当たり前
それにお金の計算は浮動小数点を使うほど金額の大小の差があるわけじゃないからね
固定小数点のほうが楽
2017/06/23(金) 01:06:55.50ID:JWcoHIe2
>>526
金利はもちろん少数だけどお金は絶対切り捨てなきゃだめだってことでしょ。
金持ちになったからばれたんじゃなくて異常なトラフィックがある口座でばれたんだったと思う。
一回の取引で0.5セント端数が出るとして一万取引分頂戴しても50ドルにしかならんw
2017/06/23(金) 01:28:43.40ID:JXoHAcYz
Pythonではじめる機械学習
――scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

難しすぎて、分かんない。

どうしたら良いですか?
2017/06/23(金) 01:29:30.87ID:mV7/Pm52
自分の妄想で反論する人って何なの?
2017/06/23(金) 03:29:20.11ID:MrfDRjZ/
>>505-506です

テキストエディタに書いてUTF-8、名前をhello.pyにして保存してドロップドラッグしてenterを押すとinvalid syntaxになります
直接打ち込むとちゃんと表示されます
二台のPCで試したら両方とも同じようになりました
2017/06/23(金) 07:51:31.31ID:tdHTYauf
TeraPad などでは、BOM無しUTF-8を、UTF-8N と呼んでる。
UTF-8 は、BOM付きだから、ダメ

メモ帳は、BOMが付くから、使うな
2017/06/23(金) 08:02:19.39ID:D30d8Kce
>>529
トラフィック?
それを言うならトランザクションだろ
無理してよく理解してない言葉使うなよ w
端数をちょろまかせて自分の口座に振り込むようにしたのはプログラマーだからトランザクションを記録するとかアホなことはしてないと思うぞ
ちなみにこういう手法は俗にサラミ法って言われてIT-Passport試験とかにもでるらしい
2017/06/23(金) 08:42:25.90ID:PRGznpyC
>>533
BOM付きで何がダメなんだい?
Python2だろうが3だろうが、コンソールがcp932だろうがcp65001だろうが
UTF-8-BOMでエラーなんて出たことないよ
2017/06/23(金) 08:58:47.33ID:enTAZ2iT
>>533
意味が分かった。>505-506のでは全然説明できてないから。
頭に「python 」(python +半角スペース)入力してからドロップしろ。
2017/06/23(金) 09:07:39.97ID:mV7/Pm52
>>532
どういでもいい推測ばかりの回答に頼るよりも
それらのファイルをバイナリエディタで開いて
自分で比較してみることをお勧めする
2017/06/23(金) 11:01:34.96ID:0OdP20aK
>>535
shebangに^Mがついてるアレか
2017/06/23(金) 14:03:36.40ID:ck871OhT
>>536
できた!ありがとう!他の人もありがとう!
そんなステップ本には載ってなかったよ!
2017/06/23(金) 16:22:06.10ID:xIim3u4b
>>536
エスパー成功おめ
2017/06/23(金) 17:05:50.55ID:QgWrU2UU
解説よろ
2017/06/23(金) 22:54:30.63ID:vHA11wMc
もしかして、
インタープリターを対話モードで起動した後、
>>> python "path/to/hello.py"
とやらかしたってことか?
これだと確かに "SyntaxError: invalid syntax" を返してくるし
2017/06/23(金) 23:04:40.11ID:RxhUAAKn
>>536
かっこいい!
2017/06/24(土) 13:53:12.90ID:wvH0k9ig
水の流れをシミレーションしたい。

項目が多すぎて、どれを使用したら良いのか分かりません。
https://ja.wikipedia.org/wiki/%E6%B0%B4%E7%90%86%E5%AD%A6

特殊なライブラリとか有りますか?
545デフォルトの名無しさん
垢版 |
2017/06/24(土) 14:00:49.95ID:29Lhuze+
滲みレーション
2017/06/24(土) 14:25:42.41ID:4xY769kz
京を買えばシミュレーションできます
http://www.aics.riken.jp/jp/science/research-highlights/ksympo61.html
2017/06/24(土) 14:38:18.95ID:8BTA80jJ
>>544
その程度の質問してるようでは、無理だ

たぶん卑近なお遊びに使いたいのだろうから、フリーのCFDソフト使うのがヨロシ(3DCGソフト内のでも可)
2017/06/24(土) 15:15:14.31ID:X+ZTIHBs
フルイドシミュレーションはBlenderが搭載してたからそこから辿ればどのライブラリ使っているかわかるんじゃね?
2017/06/24(土) 16:47:57.87ID:JlMsM692
ナビエストークス方程式と連続の式を連立させれば数値解析で解けます

やったことないが
2017/06/24(土) 17:04:57.12ID:fM3P/Xze
アホ乙
2017/06/24(土) 21:00:49.39ID:McEzuL5X
>>550がシミュレーションしてくれるようです
2017/06/24(土) 21:09:43.61ID:baNx7Ynm
効いてるな
2017/06/24(土) 22:31:44.91ID:TJcGM6+6
効いてるw効いてるw
2017/06/25(日) 22:41:24.56ID:73afZyVm
windowsでGUI使いたいんだけどおススメはどれですか?
555デフォルトの名無しさん
垢版 |
2017/06/25(日) 23:23:19.50ID:pYBZiqDJ
作るんじゃ無くて使うの?
作るならC#だけど。。。
556デフォルトの名無しさん
垢版 |
2017/06/25(日) 23:26:37.82ID:pYBZiqDJ
ってPythonスレかw
tkinterじゃないかな?
tcl/tkはGUI作成特化言語としてもライブラリとしても秀逸。
557デフォルトの名無しさん
垢版 |
2017/06/26(月) 10:45:17.40ID:GXjV4tuN
優秀だってよwwwwwwwwwwwwwwww
おまえtkしかつかったことないんだな
558デフォルトの名無しさん
垢版 |
2017/06/26(月) 11:04:59.91ID:ShIs81CE
Gtkもあるよー
Gtkのが高機能だけど、導入のしやすさでtkinter勧めた。
559デフォルトの名無しさん
垢版 |
2017/06/26(月) 12:39:32.83ID:H+izVTcm
>>554
pythonなら
1.tkinter
2.wxPython
3.PyQt
4.PySide
5.matplotlibのもUI楽しい
6.その他
2017/06/26(月) 14:04:44.85ID:6xb0XhUu
>>554
Processing (半分は冗談)
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況