1 名前:デフォルトの名無しさん [2020/01/02(木) 15:56:54.08 ID:ZUrZA+uS.net] 当スレに★Python以外のプログラミング言語での回答類を書くべからず★ ☆「Ruby では」「Rubyでは」をNGワード登録推奨 このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 ★Pythonのソースコードはそのまま5ちゃんにコピペするとインデントが崩れるので ↓等のてきとうなソースコード用うpろだに貼ってきてください。 スクショをImgur等にうp といった 手抜き(クソ行為)禁止。 ttp://ideone.com/ デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。 ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。 ttps://jupyter.org/try (旧try.jupyter.org)ちょっとめんどうそう ◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と 実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。 ◇Python公式サイト◇ www.python.org/ ◇まとめwiki◇ ttp://python.rdy.jp/ 〇前スレ〇 くだすれPython(超初心者用) その45【Ruby禁止】 https://mevius.5ch.net/test/read.cgi/tech/1571188632/
29 名前:デフォルトの名無しさん [2020/01/04(土) 05:58:50.34 ID:UVp63hNq.net] >>7 [4 ** (x % 2) for x in range(5)]
30 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 09:09:49.45 ID:FBAmMQ8N.net] zip関数って無かったっけ?
31 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 09:24:51.99 ID:B5eyFP88.net] >>7 [[1, 4][x % 2] for x in range(5)]
32 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 10:35:07.19 ID:d9ICAhD8.net] >>29 が今のとこ一番分かりやすい
33 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 10:54:36.43 ID:GvN9lrG0.net] windows のコマンドプロンプトで python を動かすのは あまりお勧めできないけどな 苦労が多すぎて、得るものが少ない
34 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 11:41:40.61 ID:hpecUN4N.net] そのココロは? - windowsでpythonやるならコマンドプロンプトよりも×× - windowsでやるならpythonよりも×× - pythonやるならwindowsよりもlinux
35 名前:デフォルトの名無しさん [2020/01/04(土) 13:00:02.96 ID:trUJS7QS.net] >>30 ちょっとひねらないと嬉しい結果にならんな >>> list(zip([1,1,1],[4,4,4])) [(1, 4), (1, 4), (1, 4)]
36 名前:デフォルトの名無しさん [2020/01/04(土) 13:10:53.70 ID:trUJS7QS.net] >>33-34 横からだが WSL使ってる人 → そのままWSLで WSL使ってない人 → git for windows 入れてそれと一緒に入る git bash お薦め
37 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 13:20:22.82 ID:xFWRGYjR.net] >>35 >>> from functools import reduce >>> from operator import add >>> reduce(add, zip([1,1,1],[4,4,4]))[:5] (1, 4, 1, 4, 1)
38 名前:デフォルトの名無しさん [2020/01/04(土) 13:31:07.19 ID:trUJS7QS.net] >>33 >>36 tdm-gcc (x64) 入れると MinGW Command Prompt っていうのが付いてくるのでそっち使ってる
39 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 13:57:37.93 ID:hpecUN4N.net] 自分の場合、ふだんnodeとかはgit bashで使ってるけどpythonだけはコマンドプロンプト使ってた。 venv使ってるのとエクスプローラからパスをdrag&dropする使い方が多いんで。 コマンドプロンプト自体がお勧めできないというのは置いておいて、特にpython使うのに 向いていないとは感じないがな。
40 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 18:21:36.62 ID:k4tVVk2l.net] どうしてcmdがおすすめできない訳?
41 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 20:01:48.09 ID:Q3FXXgpV.net] 10年位前のpython2.7の頃に比べれば windows10 python3.8はものすごく使い やすくなっている
42 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 20:03:30.69 ID:Q3FXXgpV.net] wsl出てからpythonはwslだったけど、個人的にちょっと開発するなら windows10で十分
43 名前:デフォルトの名無しさん [2020/01/05(日) 00:25:24.67 ID:cNQ0xZ86.net] forの中のif 文がよく似てる感じなのですが まとめれないでしょうか? 階層が深くて分かりにくくなってしまいました *マークは字下げです plane_angle = [] for i , h in enumerate(ho): ****if i >= len(ho) - 1: ********if ho[0].dot(ho[i])<-1: ************ang=0 ********else: ************ang=acos(ho[0].dot(ho[i])) ************if ho[i].cross(ho[0]).z<0: ****************ang=pi+ang ************else: ****************ang=pi-ang ****else: ********if ho[i+1].dot(ho[i])<-1: ************ang = 0 ********else: ************ang = acos(ho[i+1].dot(ho[i])) ************if ho[i].cross(ho[i+1]).z<0: ****************ang = pi + ang ************else: ****************ang = pi-ang ****plane_angle.append(ang)
44 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 00:52:34.25 ID:NzdiaSgk.net] >>43 hoが何でどういう風にデータが入ってるのか教えてくれ
45 名前:デフォルトの名無しさん [2020/01/05(日) 01:10:24.54 ID:cNQ0xZ86.net] >>44 hoはx,y,z座標を normalize()させた値が複数個入ってます こんな感じです 入ってる数と座標はその時によって違います [Vector((0.9713584184646606, -0.23761920630931854, 0.0)), Vector((0.2879558205604553, 0.9576436281204224, 0.0)), Vector((-0.8237842321395874, 0.0, 0.5669034123420715)), Vector((-0.9037604331970215, -0.36954042315483093, -0.21600256860256195))]
46 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 01:19:33.03 ID:MK0cWPLh.net] 超初心者です。Pythonのscrapyについて教えていただきたいです。 一つのspiderを作って、crawlすることはできたのですが、 (scrapy crawl xxxxx -o sample_data.csv) yyyyy.pyとzzzzz.pyというspiderを同じディレクトリに作成し、 (x,y,zは別ドメイン別サイトで同じような情報が掲載されている。 もちろん構造が違うためxpathはサイトごとに違う。) 連続で実行する方法があったら知りたいです。 ググったのですが、scrapyでそういうことができるかどうか、 わからなかったので、質問させていただきました。 spiderの.pyのみx,y,zと複数作って管理保守を楽にしたいです。 xxxxx.pyに複数のclassを書いて、上から順に実行していくという方法に なるのでしょうか。 わかりづらくて申し訳ないです。ご教示よろしくお願いいたします。
47 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 01:32:31.46 ID:BPHXVrhY.net] Ruby なら、`〜` でコマンドを実行できる `コマンド 1` `コマンド 2` `コマンド 3` scrapy はコマンド名か? それなら、下のようにできる `scrapy 〜` `scrapy 〜` `scrapy 〜` コマンドを呼ぶぐらいなら、Ruby以外にも、シェルスクリプト・PowerShell でも出来る
48 名前:27 mailto:sage [2020/01/05(日) 02:09:21.37 ID:k//yuqW0.net] !hackster python https://www.twitter.com/hacksterio https://www.youtube.com/hacksterio https://www.hackster.io/channels/topics Python on Hardware Power your homes and bots with Python! https://www.hackster.io/python-on-hardware/projects (deleted an unsolicited ad)
49 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 03:43:21.88 ID:y+bEWN5I.net] >>43 要は2つの隣接する単位ベクトルho[i]とho[i+1]の演算を行いたいが、iが末尾の時はi+1の代わりに0番目を使いたいということか? それならまずi+1または0を変数jに入れて、ho[i]とho[j]の処理だけを書けば良さそう。
50 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 04:26:51.43 ID:NzdiaSgk.net] >>43 def foo(v1, v2): ____if v1.cross(v2).z < 0: ________return pi + acos(v2.dot(v1)) ____else: ________return pi - acos(v2.dot(v1)) plane_angle = [0 if v2.dot(v1) < -1 else foo(v1, v2) for v1, v2 in zip(ho, ho[1:] + ho[:1])]
51 名前:43 mailto:sage [2020/01/05(日) 12:09:19.59 ID:cNQ0xZ86.net] >>50 びっくりするほど短くなるんですね ありがとうございます 助かりました
52 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 12:25:51.05 ID:Q3EjVbhD.net] >>51 そもそも命名規則とか意識した方がいい 自分でコード読めなくなるぞ
53 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 13:21:59.71 ID:t/h3kgdg.net] df = pd.read_csv(file) print(df.query('class > 1')) 例外が発生しました: SyntaxError Python keyword not valid identifier in numexpr query (<unknown>, line 1) File "L:\c#\プロジェクト再開\UnsRehaPlanR21\UnsReha\bin\Debug\setData.py", line 27, in <module> print(df.query('class > 1')) これなにが間違ってるのでしょう?
54 名前:デフォルトの名無しさん [2020/01/05(日) 13:22:23.53 ID:qO+R3XJX.net] 長さが違うものでもzipできるの?
55 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 14:57:09.36 ID:NzdiaSgk.net] >>53 >Python keyword not valid identifier in numexpr query Pythonのキーワードはnumexprクエリにおいて有効な識別子ではありません “class”はPythonのキーワード
56 名前:43 mailto:sage [2020/01/05(日) 15:49:37.35 ID:cNQ0xZ86.net] >>52 はい、命名規則つけるようにします。 ほとんど後でメンテナンス不可能になって投げ捨てる事になってしまうので ちゃんとやることにします
57 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 22:53:56.79 ID:t/h3kgdg.net] >>55 あああ〜、、、 ありがとうございます。 結構悩んだんだけど、予約語でしたか、、、
58 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 23:08:33.53 ID:CBy/ZWII.net] seleniumのwebdriverwaitが100%タイムアウト返してくるんですけど、これ考えられる原因あります? waitの時間伸ばすしか対策ないんでしょうか?
59 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 23:58:22.41 ID:NzdiaSgk.net] >>58 ImplicitWaitしてて 検索条件が間違ってる可能性がある デバッガでブレイクポイント設定してステップ実行で試せば 本当にタイムアウトしてるのか条件が間違ってるのか切り分けられる
60 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 00:08:19.56 ID:VrovJO3c.net] >>59 具体的には https://colab.research.google.com/drive/1wT6ZpKLNr24R5qEfH-0jotifhBVrfA9S の57行目でタイムアウト返ってくるんですよね… この場合だとec.element_to_be_clickableの中身が間違ってるんでしょうか…
61 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 00:28:29.42 ID:zQo0hVCB.net] データフレームに含まれるNoneデータの個数を数えようとしています df_bool = (df_combine == None) @ number_of_outliers = df_bool.sum() A でいけるかと思ったんですが、dfにNoneデータに対して@はFalseの判定でした。 どうやって数えればいいんでしょうか?
62 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 01:16:53 ID:78RinjQr.net] >>60 エラーが返される57行目の前に Python3.7以降ならbreakpoint()と書けばブレイクポイントが設定されて 標準のデバッガが起動されるのでnとかsでステップ実行したり任意のコードを実行したりできる IPythonのデバッガを使いたければimport ipdbして ブレイクポイント設定したいところでipdb.set_trace(context=10) 人の書いたコードを丸っとコピペするのは別にいいけど 間違ってるかどうかを自分で確かめられないようなら潔く使うのは諦めたほうがいい
63 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 01:17:07 ID:78RinjQr.net] >>61 df.isna().sum()
64 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 10:06:33.60 ID:bAE45PWZ.net] >>63 ありがとう。助かりました。
65 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 23:59:51.35 ID:VrovJO3c.net] すいません…結局わかりませんでした… とりあえずelement_to_be_clickableの中身でエラー起こしてるみたいですが… 構文は間違ってないですし、IDの名前も間違ってないんですよね…
66 名前:デフォルトの名無しさん [2020/01/07(火) 00:20:44.83 ID:ueOqy5pf.net] >>60 # ランタイムクリック select_dropdown = WebDriverWait(self.driver, 20).until(EC.element_to_be_clickable((By.ID,"runtime-menu-button"))) runtime-menu-button のid が存在するかどうか、ブラウザのF12 開発者ツールで確認すれば? 存在しなければ、wait time を、20 秒から、200秒ぐらいにすれば?
67 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 00:29:10.58 ID:PWzkvPR1.net] >>66 runtime-menu-buttonが存在するところは確認済です 一応昨日180秒でやりましたが結果は変わりませんでした
68 名前:66 mailto:sage [2020/01/07(火) 02:08:13.14 ID:ueOqy5pf.net] 600 〜 1,800秒で、やってみれば? 自分が待てる限界時間まで、やってみれば?
69 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 02:39:18.92 ID:sZs6mHzs.net] 俺も以前開発ツールで見えているのにクリック出来なくてドハマりした 一度そのエレメントが見えるところまでまでスクロールすればイケルと思う 理由は分からないw 面倒だから全スクロール execute_script("window.scrollTo(0, document.body.scrollHeight);")
70 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 03:04:54 ID:sMehhi+2.net] headlessじゃなくブラウザを画面表示してデバッガでステップ実行すれば 本当にタイムアウト時間内に要素が求める状態になってないのか それとも求める状態になってるにもかかわらず取得できないのか一発で分かるやろ 後者ならステップ実行時にto_be_clickableじゃなく 単にfindで要素取得できるかどうかとか 取得できるならそれをclick()できるかどうかとか 正攻法で切り分けしていけばいい
71 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 07:30:53.46 ID:Thq5It+S.net] 他の要素の下になってクリックできないってこともある。
72 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 07:48:08.12 ID:gM3QDlRr.net] 見えてすら無いに一票
73 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 11:17:44 ID:DsG2B72o.net] pandasのread_excelでシート読むときに、セル内の関数を読み書きするのはどうしたらいいんでしょうか 具体的には=いまセルにtext(today()+1,"mmdd")が入ってて、read_excelすると1008が取得中できるのですが today()+nと操作したいです
74 名前:デフォルトの名無しさん [2020/01/07(火) 12:42:25.03 ID:j68rdTp2.net] もちろんできないのであきらめる
75 名前:デフォルトの名無しさん [2020/01/07(火) 12:54:01.36 ID:j68rdTp2.net] OpenPyXLなら式操作できるかな xlrdでもいいのかも知れないが "Please use openpyxl where you can..." なんてわざわざ書いてあるライブラリ使わんでもえやろ
76 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 14:39:25.87 ID:sMehhi+2.net] >>73 1. xlwingsやCOM使ってExcelを開いて再計算させてからpandas使う 2. Excelの計算式は捨ててpython側で計算式を定義する 3. openpyxlで計算式をパースしてpythonで計算し直す (茨の道)
77 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 15:07:43.76 ID:YTm5sjhC.net] seabornでlmplot使っているのですが、DFのラベルでlatency(msec)や[msec]として単位をグラフの軸ラベルを記載しようとするとエラーになります。
78 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 15:09:01.88 ID:YTm5sjhC.net] 多分[]や()が予約後だからかとおもいますが、DFのラベル名に単位を記載しようとするときはどのようにするべきなのでしょうか?
79 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 16:20:37.06 ID:sMehhi+2.net] >>77 角括弧や括弧があってもクウォートして文字列として扱われてれば問題無いはずなので エラー内容とそのエラーが再現する最小限のコードを公開したほうがいい
80 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 19:12:15.21 ID:cN6CR2jQ.net] latency_msec 1700 0 0 0 0 0 0 0 0 for i, latency in enumerate(df['latency_msec']): print(i, latency)
81 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 19:13:26.51 ID:cN6CR2jQ.net] 結果 0 1700 1 0 2 0 3 0 4 0 0 0 1 0 2 0 3 0 なんでインデックスが4まで行くと0になってしまうのでしょう? アホみたいですが、教えて下さい。
82 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 19:22:14.99 ID:cN6CR2jQ.net] >>81 すいません。 自己解決しました。 関数の呼び出し先の問題でした。 疲れ切ってます。 org
83 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 19:50:51.58 ID:cN6CR2jQ.net] 連投すいません x latency_msec 1 1700 2 1701 3 1702 4 1703 5 1704 6 1705 7 1706 8 1707 9 1708 df = input_data() print(df.iloc[1][1]) とすると ValueError: Can only index by location with a [integer, integer slice (START point is INCLUDED, END point is EXCLUDED), listlike of integers, boolean array] となります。 なぜでしょう・・・。 Pandasよくわからない・・・。
84 名前:デフォルトの名無しさん [2020/01/07(火) 19:55:20.61 ID:Bxvs3Isv.net] df.iloc[1,1]
85 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 20:03:44.84 ID:cN6CR2jQ.net] >>83 すいません。 無視してください、また変なこと聞きました。 もう無理だ・・・寝ます・・・。
86 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 22:05:07 ID:cN6CR2jQ.net] q75, q25 = np.percentile(col, [75 ,25]) colが整数だけのときは正しい値が入るのですが、colに少数が入ると0.0になってしまいます np.percentileって少数には使えないのでしょうか?
87 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 22:19:19 ID:sMehhi+2.net] >>86 a = np.array([[10.4, 7.8, 4.5], [3, 2, 1]]) np.percentile(a, [72,25]) #=> array([6.48, 2.25]) 問題なさそうだけど?
88 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 23:10:02 ID:cN6CR2jQ.net] >>87 あれ、本当ですね ここが原因と思ってたら何が原因か分からなくなってきた
89 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 23:17:56 ID:cN6CR2jQ.net] 四分位範囲で外れ値の値だったばあいフラグを立てる関数を作ったのですが、 なぜかデータが整数では正常動作するのに、少数が含まれているとフラグで1を立てても0になります。 かれこれ数時間悪戦苦闘しているのですが、原因わからず・・・。 どこかにコードを書き込んで質問できればいいのですが、そのような掲示板ありませんでしょうか? 本当に初心者ですいません。
90 名前:デフォルトの名無しさん [2020/01/07(火) 23:30:09.50 ID:Es2WAZts.net] つideone
91 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 23:55:26.90 ID:cN6CR2jQ.net] >>90 ありがとうございます。
92 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 23:57:52.11 ID:cN6CR2jQ.net] https://ideone.com/Fl1R9z 40行目の df.iloc[i][output_column] = 1 が怪しいとおもうのですが、取り込んだdfが整数だけのときは1が書き込めているのですが、 dfに小数が含まれているときは書き込めていないようです。 なぜなのでしょう・・・・・。
93 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 12:53:13.99 ID:U2S7mQMy.net] >>92 ↓この警告出てるよね? リンク先みて警告を消そう SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy とりあえず df.loc[i, output_column] = 1 にすれば動くけど 普通はenumerateとかせずにapply使う場面だと思う df[output_column] = df[chk_column].apply(is_outlier)
94 名前:デフォルトの名無しさん [2020/01/08(水) 17:08:03.84 ID:Sre2vN3k.net] df['price_edited'] = df['price'].apply(lambda a: int(a[1:]) if a.startswith('$') else 0)
95 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 18:24:29.64 ID:xdUcjCBz.net] >>67 クリックできるようになるまで待つのをやめて、ボタンが現れるのに十分と思われる時間待った後で普通にクリックしてみる。 そうするとなんでクリックできないのか分かるかもしれない。
96 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 19:32:52.69 ID:j91Gwtaz.net] map, filter, reduceとか色々あるけど、pythonでこの辺って使う機会ある?
97 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 19:59:10.33 ID:NG22H+Rz.net] ほとんどない リスト内包表記の方が可読性高いし、複雑な処理にはどうせpandasとか使うし
98 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 20:02:38.71 ID:cyxQSndQ.net] pythonに限らずどの言語でも用意されてるがどの言語でも使わない
99 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 20:06:21.39 ID:HaPwADKT.net] mapは、リスト中の数字と数値を数字に統一して、ソートできるように再マッピングするときに使うことはある
100 名前:デフォルトの名無しさん [2020/01/08(水) 20:07:25.06 ID:cBWLj0dO.net] >>98 じゃあどうするの? for文?
101 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 20:10:23.35 ID:v4o4ZY0H.net] >>96 mapは内包表記を使うほどでもないとき 競技プログラミングとかで入力を全部int型のリストに置き換えるときとかに使うぞ a,b,c = map(int,input().split())って感じで
102 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 20:28:49.09 ID:w1X5ZQ1+.net] なるほどlambda書かなくていいケースなら短いんだな
103 名前:デフォルトの名無しさん [2020/01/08(水) 20:31:21.99 ID:rc02anx7.net] 競プロで使うといえば、sys.stdinとcollections.dequeも
104 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 21:13:48.14 ID:U2S7mQMy.net] >>96 個人用のコードの場合はcurryやpipeと合わせてそこそこ使うけど 他人が読み書きするコードの場合は基本的に内包表記に揃えてる 他の言語と違ってpythonの場合は そのままだと処理つなげないからmap/filter/reduceだと簡潔に書けない
105 名前:デフォルトの名無しさん [2020/01/08(水) 21:16:10.78 ID:cBWLj0dO.net] >>98 ねえねえ
106 名前:デフォルトの名無しさん [2020/01/08(水) 21:23:57.62 ID:rc02anx7.net] むしろ、内包表記の方が使わんわ
107 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 21:28:12.52 ID:cyxQSndQ.net] 昔はシュワルツ変換とかあったが今のpythonじゃそんなの聞かないだろ?
108 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 21:28:32.46 ID:j91Gwtaz.net] >>101 mapってこれa,b,cに直で突っ込めるん?
109 名前:デフォルトの名無しさん [2020/01/08(水) 21:48:20.80 ID:rc02anx7.net] >>108 https://ideone.com/NPueLR https://docs.python.org/ja/3/tutorial/datastructures.html#tuples-and-sequences
110 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 09:06:17.58 ID:CHl595iH.net] >>106 競プロのことは知らないけど、内包表記の方が基本短くならない?なにか違う理由で使わないの?
111 名前:デフォルトの名無しさん mailto:sage [2020/01/09(Thu) 10:22:53 ID:CxgUH5at.net] バイト列に関して質問です。 文字タイプのバイト列情報の文字を、日本語に復元したいです。 例えば、 \x12\x34\x56\x78 という文字列があります。 これを あいう のような意味のわかる日本語にしたいです。 その場合、 print(b'\x12\x34\x56\x78'.decode('cp932')) で復元できます。 そこで、復元したい文字列は複数あるので、 \x12\x34\x56\x78 を変数に代入してから、 for文で復元しようとしています。 しかし、変数に代入したら b をつけられません。 どうすればバイト列にしてから復元できるのでしょうか?
112 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 10:37:07.44 ID:I9hACzJa.net] b'\x12\x34\x56\x78'を入れちゃだめなの?
113 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 11:18:23.26 ID:nzRPJUvL.net] データフレームのラベルにlatency[msec]と単位をいれたいのですが、 lm_model = smf.ols(formula="latency[msec]~x", data=df).fit() とすると latency is not define となります。 latency_msecとするとokなのですが[]や()を使うとダメ []、()をラベルに使ってはいけないのでしょうか?
114 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 11:29:08.27 ID:m2IVdqCX.net] >>112 レスありがとうございます。 変数にb'\x12\x34\x56\x78'を入れるということでしょうか? bと文字列 \x12\x34\x56\x78 を合体させる方法が分からないんですよね・・・
115 名前:デフォルトの名無しさん [2020/01/09(木) 12:33:47.44 ID:0RBXSUPh.net] numpy とか pandas 使うとそっちで解決しちゃう
116 名前:デフォルトの名無しさん [2020/01/09(木) 12:39:08.38 ID:j8mTnocC.net] >>110 それ答えてもいいけど、過去何度も何度も繰り返された議論が始まるだけだぞ
117 名前:デフォルトの名無しさん [2020/01/09(木) 12:45:59.86 ID:81iybZRX.net] >>114 s = '\x12\x34\x56\x78' b = s.encode('latin-1')
118 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 15:59:03.66 ID:VxfXfT1S.net] >>111 string = '¥x82¥xa0¥x82¥xa2¥x82¥xa4' hexstr = string.encode('unicode_escape').decode('utf-8').replace('¥¥x', '') print(bytes.fromhex(hexstr).decode('cp932')) https://www.onlinegdb.com/ByuRArNxI
119 名前:デフォルトの名無しさん mailto:age [2020/01/09(木) 16:52:22.09 ID:OQFCwUQr.net] l = [[1,2,3],[4,5]] から [1,2,3,4,5] に変形したいのですが、リスト内包表記だけでできますか?
120 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 17:49:39.42 ID:CxgUH5at.net] >>117 すみません、 出来ませんでした >>118 すみません、出来ませんでした
121 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 18:04:23.16 ID:VxfXfT1S.net] >>119 できるけどやめれ foo = [[1,2,3],[4,5]] [x for inner in foo for x in inner] #=> [1, 2, 3, 4, 5]
122 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 18:05:14.78 ID:VxfXfT1S.net] >>120 ↓これ動かないの? https://www.onlinegdb.com/ByuRArNxI
123 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 18:11:11.27 ID:CxgUH5at.net] >>122 全部見てませんでしたすみません そちらは動きました。 自分のでも動くか試してみます
124 名前:デフォルトの名無しさん [2020/01/09(木) 18:53:25.08 ID:KHoLcO1x.net] >>119 sum(l,[])
125 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 19:12:34.29 ID:NaQHxKOV.net] >>124 はえ〜シンプル 一階層だけならこれでいいな
126 名前:119 mailto:age [2020/01/09(木) 19:42:16.05 ID:DanfNow/.net] >>121 のやり方が3次元以上でも対応できるのでいいですね。 おっさんありがとう。
127 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 19:56:28.10 ID:nuQhSBU1.net] map, reduce, filterと来れば次はflatten でもpython標準にはない
128 名前:デフォルトの名無しさん [2020/01/09(木) 20:03:36.46 ID:vYl+3riX.net] >>> np.array([[1,2,3],[4,5,6]]).flatten() array([1, 2, 3, 4, 5, 6]) >>> np.array([[1,2,3],[4,5]]).flatten() array([[1, 2, 3], [4, 5]], dtype=object) めんどいな
129 名前:デフォルトの名無しさん [2020/01/09(木) 20:06:14.36 ID:vYl+3riX.net] >>> pd.DataFrame([[1,2,3],[4,5]]).flatten() AttributeError: 'DataFrame' object has no attribute 'flatten' >>> pd.Series([[1,2,3],[4,5]]).flatten() AttributeError: 'Series' object has no attribute 'flatten' >>> list(int(_[1]) for _ in pd.concat(pd.Series(_[1:]) for _ in pd.DataFrame([[1,2,3],[4,5]]).itertuples()).iteritems() if not np.isnan(_[1])) [1, 2, 3, 4, 5] めんどい