くだすれPython(超初心者用) その38

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/05/17(木) 11:09:14.54ID:WeqM6vIc
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

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

前スレ
くだすれPython(超初心者用) その37
http://mevius.5ch.net/test/read.cgi/tech/1521271945/
2018/07/14(土) 18:08:46.03ID:bBAel3cq
そういえばGuidoがBDFL辞めるらしいな
PEP572関係でdisられたのが原因らしいが、ML追っかけてないからよく分からん
まあ、辞めたところで何がどうなることもないと思うがね
2018/07/14(土) 19:10:27.49ID:p9pW3bxe
>>539
>使い方を知ったら
正しくない使い方だろ…
使い捨てスクリプトだろうから止めないけど
2018/07/14(土) 19:25:32.29ID:lqSDAnIa
>>539
オブジェクトなんだからメソッドあるだろうよ
ちゃんと説明は読もうな
2018/07/14(土) 19:27:46.25ID:wb5ySS54
>>541
俺もずっとこの使い方してたけどどこがまずいのか教えて
2018/07/14(土) 19:39:05.18ID:pZ9+lrqM
>>534
sortに対するsortedのつもりで、reverseに対するreversedを使おうとするとハマる。
こちらはイテレータを返すので、もう一度リスト化しないと同じにならない。
2018/07/14(土) 22:22:07.13ID:zjgvls6Z
>>543
たぶん以下のように正規表現パターンをコンパイルして使えってことだと思う
同じパターンで繰り返し何度も検索する時に速度的に有利・・・らしいが
これを使わないのは正しくない、というのは言い過ぎ

txt="123456"
r = re.compile("12(.*?)56")
mat = r.search(txt).group(1)
2018/07/14(土) 22:41:15.08ID:9E/kCsBf
>>543
searchでヒットしなかった場合Noneが返ってきて
groupメソッドなんて知らないって怒られる
2018/07/14(土) 22:50:33.19ID:wb5ySS54
>>545
ちょっと説得力が弱いような…

>>546
そういう意味なら納得です
2018/07/14(土) 22:54:34.71ID:iQdsrGNN
>>546
例外処理したらええんちゃうの
2018/07/14(土) 23:25:04.26ID:RwYVNvZ5
>>548
だよなあ
くだすれの質問コードにどんだけ厳格さを要求するんだか
2018/07/14(土) 23:27:08.84ID:/GhuOfpQ
>>548
ミスマッチの結果、二次的に発生した例外を捕まえてエラーハンドリングするのは意図が伝わりにくいしピタゴラスイッチかよって気がする
2018/07/14(土) 23:36:28.34ID:pZ9+lrqM
そのままsearchして(この時点で例外とはならない)、
try-catchでgroup(1)すればいいのでは?
2018/07/15(日) 01:12:03.97ID:WCfEKFtx
製品のプルリクに入ってたら直せって言うけど
個人のコードだったらどうでもいいわ
2018/07/15(日) 02:24:18.06ID:oGr67yTf
>>551
いや普通に戻り値チェックしてください…
match = re.search(pat, text)
if match:
. s = match.group(1)
2018/07/15(日) 08:37:24.40ID:MaWYhEE+
webスクレイピングは、サイトの仕様変更である日突然マッチしなくなる可能性があるけど
それを想定して例外処理を作っとくのは面倒だし、作り忘れが発生する可能性も高いから
あえて>539のやり方を使って、エラーで止まるようにしたほうがわかりやすいかもしれん
2018/07/15(日) 08:50:29.23ID:BpM21w6A
仕様変更なのか
一時的な障害なのか
たまたまエラーになるデータだったのか
他の理由なのか

そういうの分析しないといけないから
リクエスト、レスポンスのダンプと処理のログは残したほうがいいよ
2018/07/15(日) 09:47:46.97ID:507A2oF2
教えてって書いてあるから横から思うところを言っただけだが
>>549みたいなこと言われるんだったら二度と教えねえわ
2018/07/15(日) 10:54:17.93ID:irOcVYp9
>>556
すまん、俺が悪かったよ
ちょっとイライラしててごめんな
558デフォルトの名無しさん
垢版 |
2018/07/15(日) 14:02:20.42ID:lCAlUWZR
もっとちゃんと謝って
2018/07/15(日) 14:14:15.96ID:LnWCwVdC
>>553の方法でNoneじゃないことを確認すれば何の問題もないんだよな
間違った方法ではない

>>556教えたくないなら教えなければいい義務ではないのだから
560デフォルトの名無しさん
垢版 |
2018/07/15(日) 14:49:01.29ID:SyiaUNYr
Optional type hintつかえや
2018/07/15(日) 14:52:56.10ID:ULhjy0aZ
>>559
間違っている箇所(戻り値チェック)を直せば、「間違った方法ではない」のは当たり前ですけどね…
2018/07/15(日) 15:59:51.01ID:mOOR+1Qr
def func():
a,b=・・・
return a,b
の戻り値aだけが欲しい時にa=func()[0]などとせずa=func()だけで可能にする方法ある?
2018/07/15(日) 16:00:25.25ID:wK+4T5k7
(´・ω・`) あやまって?
2018/07/15(日) 16:01:15.26ID:wK+4T5k7
>>562
あるわけないじゃん
ハハハ
2018/07/15(日) 16:10:39.17ID:GnA/ld69
この手の質問たまに見るけどなぜそう言うことをしたいのかいつもわからん
2018/07/15(日) 16:13:07.59ID:LnWCwVdC
>>562
デコればいいんじゃない?
2018/07/15(日) 16:37:39.67ID:+eT7t0LR
>>562
def func():
a,b=・・・
return a
2018/07/15(日) 16:58:39.39ID:JvvU9qo5
>>565
matlabだとそれができるから、matlabから来た人は重要な戻り値を先頭にしてたまにだけ欲しい戻り値を後ろに書きたくなる
pythonでそれ同じようにすると、a,_=func()とかa=func()[0]とか書かなきゃならないのを忘れてどこかでエラー出ることが頻繁に発生する
2018/07/15(日) 17:01:56.80ID:0QdlwMDB
>>567
俺もそれ思ったけど、質問者の意図はreturn a,bとした上でaだけ返すって意味みたい。
なんでそんなことしたいかは分からんけど
2018/07/15(日) 17:02:41.94ID:0QdlwMDB
>>568
へえ!
571デフォルトの名無しさん
垢版 |
2018/07/15(日) 17:21:18.42ID:z9dis41F
>>539
None で Exception 出ないか?
572デフォルトの名無しさん
垢版 |
2018/07/15(日) 17:27:59.50ID:z9dis41F
yeald a, b
573デフォルトの名無しさん
垢版 |
2018/07/15(日) 17:29:17.38ID:z9dis41F
ああ違うか
yeald a
yeald b
ydald c
...
2018/07/15(日) 17:37:09.40ID:GnA/ld69
>>568
そのために
> a=func()だけで可能
なんてされたら迷惑だよ
自分だけで使うと言うならPythonの処理系弄ればいいと思うよ
2018/07/15(日) 17:38:06.11ID:GnA/ld69
>>571
>>546
2018/07/15(日) 17:38:56.90ID:lEsxGLKr
>>545

txt="123456"

r1 = re.compile("12(.*?)56")
mat = r.search(txt).group(1)



r2 = "12(.*?)56"
mat = re.search(r2, txt).group(1)

結果は同じになるけど、
オブジェクトにするかしないかで、細かい違いはどういうところで出てくるの?
577576
垢版 |
2018/07/15(日) 17:43:15.60ID:lEsxGLKr
最初の方(r1)間違った

txt="123456"
r1 = re.compile("12(.*?)56")
mat = r1.search(txt).group(1)
r2 = "12(.*?)56"
mat = re.search(r2, txt).group(1)
2018/07/15(日) 17:53:05.48ID:4uGjQYdk
知ってるけど義務じゃないし教えない
2018/07/15(日) 18:03:01.01ID:raVPXb0K
>>578
じゃあ書き込むなよ。
沸点低すぎだわ。面倒くせ

>>576
読んで字の如くコンパイルされるので高速化が期待できる。
2018/07/15(日) 18:19:16.85ID:4uGjQYdk
>>597
コンパイルされるから高速化ぁ?
それじゃ説明になってないんだよボケ
2018/07/15(日) 18:23:05.65ID:chucpUaP
>>580
答えないんだから書き込まなくていいって。ROMに徹してなよ。
2018/07/15(日) 18:25:29.22ID:4uGjQYdk
>>545に答え書いてるだろうが日本語読めないのか?
2018/07/15(日) 18:27:40.61ID:chucpUaP
>>576
ここに答えが書いてあるよ
https://docs.python.jp/3/library/re.html#re.compile
2018/07/15(日) 18:28:14.27ID:IXGJsf34
>>581
今日限りでこんな所ROMすらしなくなるから安心しろ
2018/07/15(日) 18:29:36.91ID:wK+4T5k7
煽られて反応するのは方向性が違うだけで、沸点の低さについては同レベル
2018/07/15(日) 18:30:02.56ID:chucpUaP
>>583
本当は答えたくて仕方がないんだね。
2018/07/15(日) 18:30:50.94ID:+eT7t0LR
めでたい。良いことありそう
588576
垢版 |
2018/07/15(日) 20:52:52.55ID:lEsxGLKr
>>579,>>583
やはりオブジェクトにコンパイルすると効率が上がるという点が全てみたいだね。
あとは、コンパイルのコストとの比較になるのかな。
2018/07/15(日) 21:49:35.18ID:cDGgo13V
>>588
コンパイルて言いたいだけやな。オブジェクトの理解もあやふやそうだ。
どっちも正規表現オブジェクトにコンパイルされてるよ。明示的か暗黙かの違いはあるけど。
↓が詳しいよ。
https://docs.python.org/ja/3.7/howto/regex.html
2018/07/15(日) 21:58:34.41ID:+eT7t0LR
「今度の大型案件はコンパイルで〜」
「お宅もですか?実は弊社もコンパイルを〜」
「最近はコンパイルがないと始まりませんな〜」
「今度入った新人、若いくせにコンパイルも知らないと〜」
591576
垢版 |
2018/07/15(日) 22:43:17.00ID:lEsxGLKr
>>589
> どっちも正規表現オブジェクトにコンパイルされてるよ。明示的か暗黙かの違いはあるけど。
つまり、
r1はJavaScriptでいうところのRegExp() コンストラクタ(var r1 = new RegExp("12(.*?)56");)、
r2は同じく正規表現リテラル(var r2 = /"12(.*?)56"/;)と同じ、という考え方でいいのかな。
たしかにどちらもコンパイルと言ってた。

ということは、件のコードに効率には大きな違いはない、
ひいてはどちらを使っても構わない、
ということでいいの?
JavaScriptではリテラルのほうが速いとされているんだけど。
592576
垢版 |
2018/07/15(日) 22:53:44.08ID:lEsxGLKr
失礼、コピペで余計なクォートを入れちゃった。
正規表現リテラルは、var r2 = /12(.*?)56/; ですね。
2018/07/15(日) 23:39:12.09ID:cDGgo13V
r1もr2もいっしょ。
r2は内部でr1と同じ事やってメソッド呼んでるだけ。
ソース見たら一目瞭然。
https://github.com/python/cpython/blob/master/Lib/re.py

jsはリテラルの場合はプログラムロード時にコンパイルされて、
コンストラクタ使った時は実行時にコンパイルされるからリテラルの方が速い。
2018/07/15(日) 23:46:56.69ID:cDGgo13V
r1とr2って言っちゃダメだな

R1とR2ってことね
-----R1-----
r1 = re.compile("12(.*?)56")
mat = r1.search(txt).group(1)

-----R2-----
r2 = "12(.*?)56"
mat = re.search(r2, txt).group(1)
2018/07/16(月) 06:30:22.35ID:XBIjWYki
>>591
> ということは、件のコードに効率には大きな違いはない、
そうだよ
1回しかやらないならね

> ひいてはどちらを使っても構わない、
> ということでいいの?
compileは>>545が書いてる通り
>> 同じパターンで繰り返し何度も検索する時に速度的に有利・・・
ってこと
2018/07/16(月) 11:41:43.52ID:80hpbb9v
正規表現リテラルは、実行する前に決まっている場合

一方、オブジェクトは、実行時に決まる場合にも使える
597596
垢版 |
2018/07/16(月) 11:45:24.46ID:80hpbb9v
Ruby のコーディング規則では、

正規表現リテラルは、Perl との互換性を保つ表記で、わかりにくいから、
常にオブジェクトの方を使え、って書いてあるものもある
2018/07/16(月) 11:54:01.92ID:rAvhQng0
ポンコツrubyの思いつきコーディング規則とやらに合わせてのjavascriptで速くなることが分かりきってるリテラル使うなってか?w
頭湯だってんじゃねーか?wwww
599デフォルトの名無しさん
垢版 |
2018/07/16(月) 11:57:38.49ID:KKQqxuup
rubyはどうでもいい
600デフォルトの名無しさん
垢版 |
2018/07/16(月) 16:13:11.31ID:Od4s/iux
re.compile した結果をどっかに pickle して保存とかできますか?
2018/07/16(月) 17:41:56.21ID:fgL4HgKC
気にするな
Pythonなんか元々ビチクソ遅いんだからそんなこといちいち気にしてたら禿げるぞ
602576
垢版 |
2018/07/16(月) 23:23:44.54ID:vArnB9ir
>>593-597
search()関数は、内部的にはcompile()関数+search()メソッドなんだねぇ。
だから、同じ正規表現パターンを複数回用いる場合は、
R1(わざわざ再定義ありがとう)のような
正規表現パターンオブジェクト+search()メソッドにすれば、
その度にコンパイルする無駄がないというのが理解できたよ。

そして、R2の使い方は見た目はわかりやすいけど、
プログラム動作的には(特に複数回行う場合)
あまり意味がないということみたいだね。

勉強になりました。
レスしてくれた方々、どうもありがとう。
603デフォルトの名無しさん
垢版 |
2018/07/17(火) 14:45:03.69ID:+kxKOOfA
どうみても R1 の方が判りやすい
2018/07/17(火) 15:03:34.17ID:BuEnlPhn
D2
605デフォルトの名無しさん
垢版 |
2018/07/17(火) 16:06:12.89ID:37glYQle
>>603
Rは遅い。
606デフォルトの名無しさん
垢版 |
2018/07/18(水) 21:43:08.13ID:MvYBetm/
anacondaでspyderをupdateする方法が分かる人おる?
ちな、「conda update spyder」という理屈も分からない魔法の言葉はとりま試してみたけどダメだった
607デフォルトの名無しさん
垢版 |
2018/07/18(水) 21:44:24.37ID:b18bN/MZ
$ python3 -m pip install -U discord.py
でdiscord.pyというパッケージ?をダウンロードしましょうという記事がありました
パッケージをダウンロードするなら
$ pip install disord.py
でいいのではないでしょうか?
-mや-Uは何のためについているのですか?
2018/07/19(木) 07:19:44.95ID:YpRGm32q
どう考えても5chに文章書いて聞くよりも
ググる方が簡単に答えが見つかるのですが
この事についてどう思ってるのでしょうか
2018/07/19(木) 07:53:50.41ID:iuCKWNUm
>>608
今の検索システムは役に立たない個人ブログとかまとめとかが
大量に引っかかって、ほんとに知りたい情報を探すのが大変だからな
2chでズバリ聞く方が簡単
2018/07/19(木) 08:23:52.76ID:YpRGm32q
このスレに質問してくる人のメンタルが判って良かったです
なるほど、そういう考え方をしてるのですね
2018/07/19(木) 10:33:46.32ID:GcKjBxt+
>>610
>>1も読めないバカのメンタルが分かって良かったです
612デフォルトの名無しさん
垢版 |
2018/07/19(木) 11:55:10.27ID:GcKjBxt+
>>609
検索して見つけたブログ等の記事は一方通行だからね
わからないことがあったときに5chで質問するのは何もおかしいことじゃない
2018/07/19(木) 12:08:30.09ID:80QZXXW9
調べる能力の低さを正当化されても困る
2018/07/19(木) 14:55:03.77ID:UahdGL5C
しゃーない
切り替えてこ
2018/07/19(木) 21:38:51.56ID:NlyKZRek
英語で検索しても出てこない情報がここであっさり見つかることもあるわけで
わりと機能しているスレなんだけどな
2018/07/19(木) 21:52:44.66ID:QlKeHbXC
お前の英語が間違ってるだけだぞ
2018/07/19(木) 23:33:17.16ID:OqKdLDhg
文章にして聞けるから検索力の低い俺は割と助かる
terateil行けやって言われそうだけど
2018/07/20(金) 01:40:08.76ID:TItVS2qR
煽りや罵倒に耐えられればみんな結構優しい
619デフォルトの名無しさん
垢版 |
2018/07/20(金) 06:57:38.20ID:rKy0rX9W
バカとオタクは使いよう
2018/07/20(金) 08:31:21.19ID:CYxMXjWj
Stack Overflowで聞いた方が絶対良いでしょ
2018/07/20(金) 09:31:27.43ID:WoLwwppd
煽りに堪えられずに逃げ出した回答者が嫌がらせに来てるんじゃないかw
2018/07/20(金) 18:59:06.86ID:N+TPVOG0
N枚のシーケンス画像から1枚の画像を作ることを考えていて、画素毎に異なるシーケンス画像の値を参照したいと考えています
シーケンス画像のオブジェクトが
shape=(N,640,480,3) dtype=uint8
画素ごとにどのシーケンスから値を選択するかのオブジェクトが
shape=(640,480) dtype=int
となっています(値は0~N-1)

LUTのようにして一度に画素をすべて参照するにはどのように記述したらよいでしょうか
623デフォルトの名無しさん
垢版 |
2018/07/20(金) 20:03:35.75ID:c77xM4ns
Pandas
2018/07/20(金) 20:21:28.20ID:N+TPVOG0
numpyじゃできませんか?
2018/07/20(金) 20:27:44.61ID:dB91Glqj
Pandas
2018/07/20(金) 21:33:40.83ID:QZpzwKwu
Pandas
2018/07/20(金) 21:50:57.86ID:cPBguDIN
Pandas
2018/07/20(金) 21:55:24.32ID:wsGGDZ5W
やめろ!
2018/07/20(金) 22:01:59.13ID:aNasOOuF
お前らいいかげ…Pandas
2018/07/20(金) 22:46:13.73ID:xmKmSXFD
     \   ∩─ー、    ====
       \/ ● 、_ `ヽ   ======
       / \( ●  ● |つ
       |   X_入__ノ   ミ   そんな餌で俺様が釣られパンダ―
         、 (_/   ノ /⌒l
        /\___ノ゙_/  /  =====
        〈         __ノ  ====
        \ \_    \
         \___)     \   ======   (´⌒
            \   ___ \__  (´⌒;;(´⌒;;
              \___)___)(´;;⌒  (´⌒;;  ズザザザ
2018/07/21(土) 01:23:35.62ID:oMITg8sj
機械学習がどうとかaiがどうとか聞きますが実際ビジネスの場ではどのように使われているんでしょうか
ググって機械学習は分類分け?でビッグデータの相関を調べたり…と出てきてそれについては理解しました、他にはどういったものがあるんでしょうか
2018/07/21(土) 03:05:32.22ID:FfPVWpYP
>>631
上司「これからはAIの時代らしいでぇ!うちも何かやらんかい」
情シス君「わかりました」
ベンダー「PoCやりましょう!IoTセンサーのデータをAIで…」
情シス君「こんなんできました」
上司・社長「ほーん(ホジホジ)」
おわり

現実はマジでこんな感じ
2018/07/21(土) 06:05:23.55ID:s1Wh2Ul8
流行り言葉に踊らされるマネジメント層って滑稽やね
2018/07/21(土) 10:27:52.17ID:RhnB+4TZ
マネジメント層ではなく投資家が踊らされてるわけでとりあえずAIとか言っていれば金が入ってくるんだから利用しない手はない
635デフォルトの名無しさん
垢版 |
2018/07/21(土) 11:23:00.41ID:JzufiDOi
>>631
http://fromdusktildawn.hatenablog.com/entry/2017/06/15/184452
636デフォルトの名無しさん
垢版 |
2018/07/22(日) 03:11:41.53ID:fV3eqRzC
あのう、Pandasモジュールってなんですか?
Python3.6.5のドキュメントにも載ってないし
637遊園地
垢版 |
2018/07/22(日) 06:10:50.46ID:ygJ4tLZv
[データ操作]便利なモジュール
記述が楽になる程度
638デフォルトの名無しさん
垢版 |
2018/07/22(日) 06:20:29.92ID:oEsUODrt
>>634
機関投資家は人間での投資をやめてAIにどんどん振り替わってますが。
639デフォルトの名無しさん
垢版 |
2018/07/22(日) 08:36:18.19ID:ygJ4tLZv
AI(アイ)ショック
https://ja.wikipedia.org/wiki/AI%E3%82%B7%E3%83%A7%E3%83%83%E3%82%AF

wikiで見つけた。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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