Pythonのお勉強 Part58

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/10/25(木) 20:50:10.29ID:NRPlmaaN
★当スレにRubyのコードを書くことを禁ず

Pythonオフィシャルサイト
http://www.python.org/

■前スレ
Pythonのお勉強 Part57
http://mevius.5ch.net/test/read.cgi/tech/1529888279/

◆関連スレ
くだすれPython(超初心者用) その39
http://mevius.5ch.net/test/read.cgi/tech/1535064635/

◆まとめwiki
ttp://python.rdy.jp/

◆ソースコードをそのまま5ちゃんにコピペするとインデントが崩れるので
  こういうところ↓にはってきてください
ttp://ideone.com/      Pythonするにはぷち手間あるのがめんどうかなぁ
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。このスレ的には消えるまでの日数を長めに指定のこと。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう
ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#)


次スレは>>980が挑戦する
43デフォルトの名無しさん
垢版 |
2018/11/11(日) 21:20:52.50ID:pdcv7xn+
書き方一つで処理速度が異常に違うの?
それを覚えるので一苦労やん・・・。
2018/11/11(日) 23:03:50.56ID:ARqR0CiK
タイムアウトかね?
たぶん初心者なら、コードにバグがある

型変換失敗か、nil とか

デバッグして突き止めるしかない

それか同じ処理を、Ruby で作って試してみるとか
45デフォルトの名無しさん
垢版 |
2018/11/11(日) 23:24:21.86ID:fmi7ucDi
たしかに
どう書いても早いjavaの方が初学者向け
2018/11/12(月) 06:26:09.01ID:IMw8cYUh
>>44
同じ条件で並列数を上げて、
15分以内に終わるようにすると正常に終了します…
47デフォルトの名無しさん
垢版 |
2018/11/12(月) 11:24:03.14ID:JnLF+/7N
TCPレベルのタイムアウトでしょ。
邪魔する要素はたくさんあって、ルータ/FW/OS/プロキシ/Webサーバなどなど。
まずは、送信側でkeepaliveつけて回避できるかどうか試す。
2018/11/12(月) 11:42:44.71ID:YjowJq65
内包表記とかforとかの話では?
49デフォルトの名無しさん
垢版 |
2018/11/12(月) 16:23:45.41ID:7TKCaOCD
>>> numpy.e ** numpy.pi ** 1j
(0.9271380752254357+1.1941162626914863j)
>>> numpy.e ** 1j ** numpy.pi
(0.699287180041131-1.0322399946707999j)
>>> numpy.e ** (numpy.pi * 1j)
(-1+1.2246467991473532e-16j)

掛け算の順序に依存するのはなぜ?
2018/11/12(月) 16:49:37.66ID:JEwLf6Zk
掛け算?
2018/11/12(月) 16:58:17.06ID:inQK+rN3
掛け算には依存して無くない?
2018/11/12(月) 17:00:30.83ID:JEwLf6Zk
e^π^i
e^i^π
e^iπ
2018/11/12(月) 17:05:53.71ID:KM3fDEtL
>>49
べき乗は右から計算するから
2018/11/12(月) 17:11:25.73ID:KM3fDEtL
言わんとすることは
(e^π)^i=(e^i)^π=e^(i*π)
で実現するでしょう
2018/11/12(月) 18:10:25.03ID:dNtMFzFI
>>53
1**2**3
3**2**1
やってみ
2018/11/12(月) 18:48:09.82ID:KM3fDEtL
>>55
やってみたけどなんなん?w
57デフォルトの名無しさん
垢版 |
2018/11/12(月) 22:47:11.49ID:kT1ew28W
すげー顔文字に見えるな
58デフォルトの名無しさん
垢版 |
2018/11/12(月) 23:05:52.44ID:JEwLf6Zk
>>55
print(1**2**3)

1
print(3**2**1)

9

そら(1^8=1)そう(3^2=9)よ
2018/11/13(火) 02:24:20.81ID:bT3Yj67d
>>47
やってみます。
ただ、通信と言うよりはメインプロセスが無くなってしまってるような感じなんですよね…
pool.close()後にpool.join()してるのに、子プロセスの終了を待っていないような?
2018/11/13(火) 12:01:50.17ID:o8lRR21h
[print(i,v) for i,v in enumerate(range(10))]
の結果が以下のようになってしまうのですが、余計なNoneリストがくっついて出力されてしまうのはなぜですか?

0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
[None, None, None, None, None, None, None, None, None, None]
61デフォルトの名無しさん
垢版 |
2018/11/13(火) 12:08:25.77ID:HwiD+z3E
printの戻り値がNoneだから、Noneが10個入ったリストが生成されてる
Noneのリストを出力したくないなら内包表記じゃない普通のforを使う
62デフォルトの名無しさん
垢版 |
2018/11/13(火) 14:22:51.90ID:f2sT0P/E
Python3で関数になった弊害か
2018/11/13(火) 15:04:39.79ID:BS1qZA5r
>>61
解決しました
ありがとうございました
64デフォルトの名無しさん
垢版 |
2018/11/13(火) 18:40:12.78ID:90McxFB4
>>62
関係ない
65デフォルトの名無しさん
垢版 |
2018/11/13(火) 19:23:07.60ID:57oATazI
>>64
ある
python2のprint文で>>60を書いたらそもそも文法エラーで動かない
66デフォルトの名無しさん
垢版 |
2018/11/13(火) 19:27:50.95ID:Vxu3kwrv
害ちゃうやんw
2018/11/13(火) 20:37:55.74ID:XRzYMoBo
ジェネレーター式の意味を理解してないコードがエラー出ずに動く害
2018/11/13(火) 20:44:52.39ID:HzkGmazt
ガイジは病院へ
69デフォルトの名無しさん
垢版 |
2018/11/14(水) 11:18:07.75ID:Hh1ptiAj
>>67
どうみても正常です
2018/11/14(水) 20:08:22.51ID:7I4TYJDu
自分の意に沿わないものは全て害だろ

サヨもウヨもフェミもミソジニーもミサンドリーもそう言ってるぞ
2018/11/14(水) 20:52:25.05ID:gClbFAKL
Python始めました
docstringてどの形式がスタンダード?
2018/11/14(水) 21:02:13.47ID:RajhuqxK
https://www.python.org/dev/peps/pep-0257/
2018/11/17(土) 09:23:23.70ID:dswA0JYr
メソッドにlistとかdict2つ渡したい場合どうやるの?
74デフォルトの名無しさん
垢版 |
2018/11/17(土) 10:45:13.09ID:B4GISbTr
渡せばええやん
2018/11/17(土) 12:18:06.32ID:dswA0JYr
*必須なのかと思いこんでた
7639
垢版 |
2018/11/18(日) 00:07:44.90ID:nPRa3vMz
Apache側のタイムアウト設定が原因でした…
それでメインプロセスがいなくなるせいでした。。
お騒がせしました。
77デフォルトの名無しさん
垢版 |
2018/11/19(月) 13:08:31.80ID:3MOWhUti
ひとの話をちゃんと聴くべき
78デフォルトの名無しさん
垢版 |
2018/11/20(火) 18:46:59.72ID:twdu89w5
簡単なAI作って見たいと思っていますが、
開発環境はどうするといいでしょう?
Anaconda・VSCode辺りが良いのではないかと考えています。
2018/11/20(火) 20:44:48.38ID:eXMfunJO
十分じゃないすか
問題は能力の方だよ
80デフォルトの名無しさん
垢版 |
2018/11/20(火) 21:58:50.00ID:twdu89w5
すいません。
どちらがいいでしょう?
が抜けていました。
2018/11/20(火) 22:54:01.56ID:SIaCA4bb
ちょっとお試しならAnacondaだけでやればいいんじゃね
つか比較おかしいから
それぞれ何なのか調べとけ
2018/11/20(火) 23:14:22.35ID:EK/blyY1
VSCodeだけでいいんじゃね
インタプリタ無しで一体何するのか知らないけど
83デフォルトの名無しさん
垢版 |
2018/11/20(火) 23:20:00.02ID:Vm2a6rBd
インタプリタ有りやったら一体何すんねん?
84デフォルトの名無しさん
垢版 |
2018/11/20(火) 23:53:48.75ID:twdu89w5
ではAnacondaにします。
ありがとうございました。
2018/11/21(水) 07:48:37.44ID:+fbKXDkI
両方使ったらええやん
86デフォルトの名無しさん
垢版 |
2018/11/21(水) 11:59:11.56ID:EDQHKouT
配列のポインタをpythonから使えるようにするにはどうしたらいいの?
print(dataPointer)
#c_void_p(4594122752)

print(dataPointer[0])
TypeError: 'c_void_p' object does not support indexing
エラーが出てしまう
2018/11/21(水) 12:38:41.65ID:1UUCTXJ3
>>86
c_void_pはvoid*相当なのでデリファレンスは不可。最初から所望のポインタ型で受け取っては?
https://docs.python.org/ja/3/library/ctypes.html#type-conversions
あるいはリンク先から若干下のcast関数とか、特定ポインタ型のfrom_bufferクラスメソッド等
2018/11/21(水) 16:38:27.06ID:EDQHKouT
>>87
むずいよう
2018/11/21(水) 18:18:08.87ID:EDQHKouT
castしたら違う値が出てきた
2018/11/21(水) 18:37:12.69ID:EDQHKouT
出来た!
print(ctypes.cast(dataPointer,ctypes.POINTER((ctypes.c_double)))[0])
91デフォルトの名無しさん
垢版 |
2018/11/22(木) 12:40:28.94ID:blyr971h
()余分に見えるが意味あるのか?
92デフォルトの名無しさん
垢版 |
2018/11/22(木) 20:58:25.97ID:HONMAAM4
>>91
それ聞いてどおするつもりやw質問の仕方間違っとるわw
意味ないなら何の問題もないし
意味あるならその意味を知りたいんやないかおまえw
2018/11/22(木) 21:54:51.59ID:y+g4Mzp9
>>91
(ctypes.c_double)の括弧でしょ? 明らかに余分で意味無いから無くてもいいよね
あと>>92はカイジすぎて何言ってるか意味分かんないよねw
94デフォルトの名無しさん
垢版 |
2018/11/22(木) 23:06:53.04ID:HONMAAM4
どおも〜カイジでぇす!
2018/11/23(金) 07:01:34.35ID:2HLR+v64
ざわ
96デフォルトの名無しさん
垢版 |
2018/11/23(金) 10:42:08.19ID:RHFoujTa
一瞬、LISPコードに見えた!
2018/11/23(金) 17:59:46.31ID:qZBUrC4R
pandasのdataframeを散布図でプロットするときに横軸を時刻、縦軸を実数でプロットしたいです。
時刻をdatetime型のままにしているとエラーが出ます。
unixtimeに変換すれば解決しますが軸の目盛りがただの数値になってしまい読みにくくなってしまいます。
どのように解決できますか?
2018/11/23(金) 18:12:43.71ID:cGOad0jL
>>97
Index.format() メソッドで時刻を文字列型にかえる
2018/11/23(金) 18:16:22.29ID:cGOad0jL
あるいは
pandas.DataFrameのインデックスをDatetimeIndexにしておく
2018/11/23(金) 18:43:58.56ID:qZBUrC4R
>>98
すみません、具体的な方法が分からないのでご教授願います。
Dataframeはこのような構造です。

https://i.imgur.com/SkRvPQ2.jpg
2018/11/23(金) 19:22:46.77ID:cGOad0jL
>>100
時刻、秒数まで欲しいんか?
年数も全部いるんか?
2018/11/23(金) 19:24:48.43ID:qZBUrC4R
>>101
月と日と時間と分があればいいです。
2018/11/23(金) 19:27:04.94ID:cGOad0jL
まあいいや
>>99のほうの方法でいくぞ

df['time'] = pd.to_datetime(df['time'])
df.set_index('time', inplace=True)
2018/11/23(金) 19:33:40.16ID:cGOad0jL
できたグラフのx軸から年を消すのは
axes[1].get_xaxis().set_major_formatter(mdates.DateFormatter(“%m-%d %H:%M”))
でたぶんいけるとおもう
[]の中の1が0かもしんないけど。
2018/11/23(金) 19:33:42.67ID:qZBUrC4R
>>103
どうすれば散布図にできますか?
x軸の引数がわかりません
2018/11/23(金) 19:36:40.86ID:cGOad0jL
たとえばtempと時間で散布図するなら
df.plot.scatter(y='temp')
2018/11/23(金) 19:37:24.41ID:cGOad0jL
(x軸に使うのがDataFrameのIndexである場合、xの指定は省略可能)
2018/11/23(金) 19:44:25.81ID:qZBUrC4R
>>107
こうなってしまいます。

https://i.imgur.com/M1uRUCL.png
2018/11/23(金) 19:48:30.53ID:cGOad0jL
じゃあ
df.plot(x='time', y='temp', kind='scatter')
2018/11/23(金) 19:51:48.90ID:qZBUrC4R
>>109
横軸がエラーとなってしまいます。

https://i.imgur.com/wvGU1Xn.png
https://i.imgur.com/OlYz6HL.png
111デフォルトの名無しさん
垢版 |
2018/11/23(金) 19:53:21.83ID:oESjsyiL
dat0 = np.arange(366)
dat1 = np.array((np.arange(366), np.arange(366)))
dat2 = np.arange(3600)
dat3 = np.array((np.arange(3600), np.arange(3600)))

p00 = pd.Series(dat0, index=pd.date_range('2018-11-22', periods=366))
p01 = pd.DataFrame(dat1.T, index=pd.date_range('2018-11-22', periods=366), columns=['hoge', 'fuga'])

p10 = pd.Series(dat2, index=pd.timedelta_range(0, periods=3600))
p11 = pd.DataFrame(dat3.T, index=pd.timedelta_range(0, periods=3600), columns=['hoge', 'fuga'])

fig = plt.figure()
axes = [fig.add_subplot(411 + _) for _ in range(4)]
p00.cumsum().plot(ax=axes[0])
p01.plot(ax=axes[1])
p10.cumsum().plot(ax=axes[2])
p11.plot(ax=axes[3])

plt.show()
2018/11/23(金) 19:55:56.44ID:cGOad0jL
>>110
pandasのバージョンが0.17より古いということはないか
2018/11/23(金) 20:11:32.26ID:cGOad0jL
あっ

>>103にまちがい

×df.set_index('time', inplace=True)
◎df.set_index('time')
2018/11/23(金) 20:34:55.12ID:qZBUrC4R
>>112
0.19.2でした。
>>113
かわりませんでした。
>>111
pandasがいいです
2018/11/23(金) 20:48:51.55ID:qZBUrC4R
エクセルのようにマーカーを線で結ぶ方法もわかりません。
2018/11/23(金) 20:56:17.33ID:cGOad0jL
>>114
(ー'`ー;)うーん
df.plot(kind='scatter', x=df.columns[0], y=df.columns[1])
でどうよ

>>115
普通のグラフと散布図の重ね書きが必要かも?

ax1 = df.plot()
df.plot(kind='scatter', ax=ax1, secondary_y=True)
2018/11/23(金) 21:14:37.81ID:qZBUrC4R
できませんでした。
2018/11/23(金) 21:16:32.23ID:cGOad0jL
もはや俺には手に負えない。。。
誰かもっと詳しい人をまってくれ
すまんな
2018/11/23(金) 21:21:33.46ID:qZBUrC4R
>>111
よくみたらpandasでした
すみません
120デフォルトの名無しさん
垢版 |
2018/11/23(金) 21:50:35.85ID:D1/wh0yl
‘/home/hoge/foo/*.txt’ みたいなパスが与えられてglobしたい時って、pathlibだと一度切り分けて
Path(‘/home/hoge/foo’).glob(‘*.txt’)
とするしか無い?
glob.globなら最初のパスを丸ごと与えて終わるけど
2018/11/23(金) 22:04:21.17ID:xRMo6/oI
マルチすんなチンカス
122デフォルトの名無しさん
垢版 |
2018/11/24(土) 00:26:19.74ID:MKfv0UvY
そんな事言ってもしマンカスやったらどうするつもりや?
このご時世やから秒でセクハラで訴えられるでおまえ
2018/11/24(土) 01:06:03.02ID:dSfTZsQB
のどチンカスならどっちでもセーフだからへーきへーき
2018/11/24(土) 01:49:02.59ID:01jBobXF
>>120
5ch は、マルチポスト禁止!

同じ質問を、2つ以上のスレに書き込むのは禁止!
2018/11/24(土) 14:01:54.72ID:S/+07wK4
>>117
できたぞ!

import pandas as pd
import matplotlib.pyplot as plt

df['time'] = pd.to_datetime(df['time'])
df = df.set_index('time')

plt.scatter(df.index, df['temp'])

plt.show()


>>115についてはこれから調べる
2018/11/24(土) 14:06:50.41ID:S/+07wK4
>>115
できたぞ!

plt.plot(df.index, df['temp'], marker=".")

#他のマーカーのカタチについては↓参照
#https://matplotlib.org/api/markers_api.html#module-matplotlib.markers
2018/11/24(土) 14:08:58.96ID:S/+07wK4
※pandasの.plot()を使う方法はなんかどーしてもうまくいかんかった (´・ω・`)
128デフォルトの名無しさん
垢版 |
2018/11/24(土) 15:05:41.49ID:4kdGLnPd
>>126
marker=(5, 1, 36) みたいな描き方出来るんだな勉強になった thx!
129デフォルトの名無しさん
垢版 |
2018/11/24(土) 16:36:05.20ID:lQDFRZSW
>>126
できまじた!
2018/11/24(土) 17:33:02.92ID:S/+07wK4
☆。・:*:・゚ ネ兄 ,。・:*:・゚☆
2018/11/25(日) 13:35:07.53ID:fZu9KGiT
プログラミングに関してはhtmlすら全く分からない超初心者です
http://storia.takeshobo.co.jp/manga/koizumi/_files/01/data/0001.jpg
の様にパズル化された画像を
http://storia.takeshobo.co.jp/manga/koizumi/_files/01/data/0001.ptimg.json
の記述にしたがって64分割された画像を入れ替えてパズルを完成させる方法を探していたら
https://pastebin.com/M7sUy6JC
が見つかった為、Pythonをインストールしたのですが意味が分かりません

Python 2.7.15
numpy (1.15.4)
Pillow (5.3.0)
pip (9.0.3)
setuptools (39.0.1)

PIL(Pillow)は入れました
保存したpy(_u_nscramble_manga.py)をコマンドプロントにぶっ込んだら
「line 1」「SyntaxError: invalid syntax」が出たので
1行目が無効と判断し、1〜15行目まで削除し16行目の#! /usr/bin/env pythonから始めました

すると
usage: _u_nscramble_manga.py [-h] image_path json_path output_path
_u_nscramble_manga.py: error: too few arguments
と言われました
そもそもURLの指定やjson、保存先の指定箇所が全く分かりません・・・
image_pathのところをhttp://storia.takeshobo.co.jp/manga/koizumi/_files/01/data/0001.jpgに書き換えたりしましたが違うみたいです

このスクリプトはどうやって実行するのでしょうか?
132デフォルトの名無しさん
垢版 |
2018/11/25(日) 14:11:24.57ID:rkqtyTFb
>>131
コマンドラインで引数を与える
python 〜.py -h
を実行すればヘルプが出るはず
2018/11/25(日) 15:30:15.57ID:fZu9KGiT
>>132
「コマンドラインで引数を与える」とはどう言う事でしょうか?
以下のURL
http://motw.mods.jp/Python/argument.html
を参照してバカなりに解釈した結果が以下です
https://dotup.org/uploda/dotup.org1700856.jpg

ERROR: Image file not found, check your path.
と出て怒られました・・・
意味が分かりません (´;ω;`)
2018/11/25(日) 15:49:56.58ID:H967y0wv
これって、竹書房がしょぼいなりにスクランブルかけてるのを解除するスクリプト見つけたから
スクリプトの使い方教えてっていう質問なので触らないほうがいいよ
135131
垢版 |
2018/11/25(日) 16:16:10.37ID:fZu9KGiT
ご迷惑をお掛けしました
>>134が仰る事はスレ的には正論と思いましたので以後、回答は不要です
グレーなスクリプトな為、自己解決出来ないなら使うべきではありませんね

以上、失礼致しました
2018/11/25(日) 17:54:38.18ID:mORjFRT1
竹ショボ〜ン
2018/11/25(日) 18:21:40.46ID:sFkUcxz4
だれうま
138デフォルトの名無しさん
垢版 |
2018/11/25(日) 18:28:44.16ID:arFqKMW0
ケケしょっぼ
2018/11/26(月) 02:33:56.21ID:nvtZwlw2
暗号を使っている人は、解除されたくなくて使っているから、
暗号を解除すれば、確信犯として逮捕されるよ

そのツールを作った者も、犯罪ほう助で逮捕されるかも
2018/11/30(金) 10:55:51.18ID:4Z2+gr8s
Pythonで機械学習とビッグデータの勉強を独学で2年ほど続けたあと、職務経歴を捏造して、機械学習の業務経験有りで売り込んでみろ
ジャップに機械学習の専門家なんて二桁もいないからまじで引く手あまた
年収2000万は最低限貰える
141デフォルトの名無しさん
垢版 |
2018/11/30(金) 11:52:17.76ID:fsxSc9K/
>>140
独学でも二年つったらたいしたもんだぞ
2018/11/30(金) 12:09:55.06ID:Eqzy0E1o
無名企業からでもそんなにいけるのか?
2018/12/03(月) 20:23:19.14ID:vk8lh6jD
python初心者です。
回答お願いします。

for i in range(100):
for u range(100):
if: <--@
pass
break
else: <--A
pass
break
else:
continue
break


@では内側のループだけbreak
Aでは内側と外側のループをbreakするにはどうすればいいですか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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