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/
175 名前:159 mailto:sage [2020/01/12(日) 20:18:51.94 ID:PW2KE/yt.net] >>160 <div class="speed-results-container succeeded" id="speed-value">0</div> この要素は、sleep 45 が無いと、すぐに、0 が取得されてしまう! つまり、このdiv が、最初から存在していて、0になっているのだろう このサイトを1分ぐらい見てると、数値が動くだろ たぶん、1分ぐらい掛けて、何回も非同期処理で、この値を書き換えている。 だから、1分近く待たないと、速度が安定しない
176 名前:デフォルトの名無しさん [2020/01/12(日) 20:56:59.94 ID:UO120eKA.net] お金を計算するわけでもないのですが 小数点の計算に全部decimalつけるの面倒なんですけど 何とかならないですか?
177 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 21:09:49.97 ID:M8sF3s6B.net] >>175 「0 が取得されてしまう!」じゃねーよ もうちょっと頭つかってくれ 速度が安定するまで待ちたいなら 「wait until 速度が安定?」みたいなコードを書けばいいだけだろ 測定完了を示す状態変化があるのに わざわざ速度が安定したかどうかで判定する必要もないんだけどさ
178 名前:159 mailto:sage [2020/01/12(日) 21:32:01.79 ID:PW2KE/yt.net] 他人のサイトをデバッグ・解析して、測定完了を示す状態を見つけるとか、それは大変! 仕様書もないのに、できない。 そういう解析を仕事としては色々やってきたけど、面倒
179 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 21:59:15.48 ID:LmjMg5d7.net] rubyくん ID変え忘れてるよ
180 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 23:01:37.62 ID:aXgbqZV+.net] こんにちは質問させてください。 20190112, A, 91 20190112, B, 82 20190111, A, 93 … という感じで[日付,名前, 得点]の3カラムのデータがあり、各行の日付段階での、 その人の過去30日平均得点(人別の得点の移動平均)をできるだけ高速に計算したいのですが、 どのようにすればよいでしょうか? なお、今はsqliteで、以下のような原始的なプログラムを書いてみましたが、遅くて困っております。 # date, nameの組み合わせを抜き出し list = cur.execute('select date, name from table').fetchall # listすべてにfor文で処理 for i in range(len(list)): date = list[i][0] name = list[i][1] # dateから30日前の日付を計算 date30before (計算略) # nameが一致しているそのデータから過去30日分のスコアを抜き出し scoreList = cur.execute('select score from table where name == ? and ? < date < ?',(date30before, date)).fetchall # 抜き出した30日分のスコアを平均 scoreListAve(計算略) # 元のテーブルのdate, nameが一致する行に書き込み cur.execute('update table set score30Ave = ? where date = ? and name == ?'),(scoreListAve, date, name)) con.commit() # for後、コミット
181 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 23:44:09.77 ID:8exfRg1S.net] 少なくともSELECT文はfor文で回す必要がないように見える ウィンドウ関数とか使って、1回のSELECT文けで、その後のUPDATE文の条件として使いたいscoreListAve, date, nameを抽出出来るはず
182 名前:180 mailto:sage [2020/01/12(日) 23:53:05.86 ID:aXgbqZV+.net] >181 ウインドウ関数を知らないので調べてみます。 ありがとうございます。
183 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 01:51:12 ID:6QaMEdT1.net] where の条件に、日付・名前があって、 それらに索引インデックスが付いていないのなら、絞り込めず、全探索になるから! 例えば、100万レコードあれば、それらをすべて検索してから、チェックするから! 基本的には、検索条件に索引インデックスが付いていないものは、全探索になるから検索しない! 情報処理資格のデータベーススペシャリストの教科書で、 データベースの設計を勉強すべし!
184 名前:180 mailto:sage [2020/01/13(月) 02:43:19.89 ID:wBE7Qmaa.net] >183 助言ありがとうございます。 書き忘れましたがname, dateのIndexはすでに作ってます。 cur.execute('create index dateIndex on table(date)') Indexでだいぶましになったのですが、それでも現状、 forが100進むのに1秒くらいなので、20万レコードで30分くらいかかります。
185 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 04:48:03 ID:nfiKoGl1.net] 歯抜け無しならWindow関数で 歯抜け有りなら相関サブクエリで ― Window関数 ― SELECT date, name, score, avg(score) OVER ( PARTITION BY name ORDER BY date ROWS BETWEEN 29 PRECEDING AND CURRENT ROW ) AS moving_avg FROM score_table ORDER BY name;
186 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 04:59:38 ID:nfiKoGl1.net] 相関サブクエリのほうはブロックされたからここに貼っとく https://ideone.com/73jaTZ
187 名前:180 mailto:sage [2020/01/13(月) 05:49:10 ID:wBE7Qmaa.net] >185 大変ありがとうございます。 歯抜け有りなので相関サブクエリの方をまず試してみます。 ここまで見本のコードを書いていただければ自分のレベルでも なんとか取り入れられそうです。
188 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 09:52:19.26 ID:kwqyPibM.net] >>187 歯抜けありでもwidow関数で書けるぞ。 相関サブクエリなんて過去の技術を使うな。
189 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 09:57:49.58 ID:Co2mHaqk.net] >>180 のコードでメモリが足りているならsqlをどうこうする必要はないと思うが。
190 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 10:30:58.73 ID:BvowWoiX.net] 1回のクエリで行けるところを、わざわざループでクエリ投げまくる意味はないでしょ
191 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 10:58:18.23 ID:bfpXOE5X.net] クエリが苦手でPythoに慣れているなら意味はある クエリは言語としては非常に特殊だからね 常用しない人にはとっつきづらい
192 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 10:59:15.38 ID:Yl8Am7cI.net] SQLの書き方次第で100倍は効率良くなる事案
193 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 11:38:01.76 ID:nlvLw0Pz.net] >>189 遅いから困ってるって明記されてるのにメモリーとか何言ってるんだよw >>191 書捨てならそれでいいけどよく使うならSQLは覚えていて損はないと思うぞ 考え方に慣れればそれほど難しくないし
194 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 13:13:36.22 ID:V22NtS8V.net] 距離を計算したいのですが、 df['distance']=math.sqrt((df['x_distance']**2+df['y_distance']**2).values) で only size-1 arrays can be converted to Python scalars となります。 DFを.valueつけてndarrayに変換してsqrt()に渡せばいいのかと思ったのですが・・・ お教えいただけると助かります
195 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 13:19:03.45 ID:S1eVQBPA.net] valuesで取ってから二乗して和をとってしないと行けないんじゃないの
196 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 13:21:21.99 ID:dQZR7cFx.net] https://pastebin.com/dLSjsvev このコメントアウトしているコードを実行するとエラーが出るのですが、何が悪いのでしょうか?
197 名前:デフォルトの名無しさん [2020/01/13(月) 13:24:28.21 ID:uorRSC+x.net] >>194 math.sqrtはpythonの標準関数でスカラーにしか対応していない np.sqrtにすればたぶん動く
198 名前:デフォルトの名無しさん [2020/01/13(月) 13:37:39.33 ID:+xCO6TbN.net] >>196 formatなんて組み込み関数はない
199 名前:デフォルトの名無しさん [2020/01/13(月) 13:41:07.13 ID:DXn4EK/n.net] Python学びたいんだけどどっから手を付けていいかわからん。 取り敢えず、クジラ本 「実践力を身につける Pythonの教科書」(4839960240)は買ってきた。
200 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 13:44:12.30 ID:V22NtS8V.net] >>197 できました。 ありがとうございます。 m(._.)m
201 名前:デフォルトの名無しさん [2020/01/13(月) 14:08:01.51 ID:IO5oYjrW.net] 教えて下さい。 pythonのコードを友人に書いてもらったのですが標準のIDLEではRunModuleで 実行できるのにコマンドプロンプトで実行しようとしたら以下のエラーを吐きます。 python3.6.5 windows10 Traceback (most recent call last): File "C:\Users\user\Desktop\201911_Project_\201911_Project_\sendMailLogic.py", line 19, in <module> WebSiteList = dac.getWebSiteList() File "C:\Users\user\Desktop\201911_Project_\201911_Project_\DAC.py", line 96, in getWebSiteList for row in cur.execute(strSQL): sqlite3.OperationalError: no such table: WebSite_List よろしくお願いします。
202 名前:デフォルトの名無しさん [2020/01/13(月) 14:16:44.85 ID:6kghygIo.net] >>201 「WebSite_List」って名前のファイルが参照場所にない。 探せ。 あと拡張子とかついちゃってて名前がかわってないかもチェック。
203 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 15:42:49.08 ID:V22NtS8V.net] 2Dカードゲームでユーザの行動特性を調査する 研究用アプリを開発しようと思ってます 開発環境をPygameにするか、Unityにするかで悩み中 Unityのほうが色々ゲーム用の機能揃ってて見栄えの良いUI作れそうなんだけど、 ユーザの行動データを数値解析したり、将来的には機械学習も取り入れようかと思ってるので、 その点ではPythonのほうが親和性高そう どちらが、おすすめとかありますか?
204 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 15:43:53.12 ID:V22NtS8V.net] ちなみにUnity、c#のほうが少しは得意 Pythonは最近sklearnとか使い始めたくらいの超初心者です
205 名前:デフォルトの名無しさん [2020/01/13(月) 15:51:01.10 ID:tF3chcAw.net] それは ※ただし、選択できるプログラミング言語は一つだけとする というような縛りプレイルールが暗黙的に存在すると考えていいのかしら? でなかったら俺はゲームをUntiyで書いて機械学習をPythonでやるかな
206 名前:デフォルトの名無しさん [2020/01/13(月) 15:52:19.18 ID:ghAse/mn.net] 親和性って書いてるだろ
207 名前:デフォルトの名無しさん [2020/01/13(月) 15:54:55.78 ID:tF3chcAw.net] だから、親和性を最優先にするならそれぞれ得意分野に使うのが最善に決まってるだろw はぁーガイジは人間に進化するまでママと遊んでてくれないかね
208 名前:デフォルトの名無しさん [2020/01/13(月) 15:58:12.59 ID:ghAse/mn.net] それ親和性優先してねーじゃん
209 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 16:08:32.64 ID:GhUCXbF0.net] >>208 何と何の親和性について語ってるの?
210 名前:デフォルトの名無しさん [2020/01/13(月) 16:10:23.44 ID:ghAse/mn.net] ゲームエンジンと機械学習エンジンの接続
211 名前:デフォルトの名無しさん [2020/01/13(月) 17:01:18.46 ID:IO5oYjrW.net] >>202 ありがとうございます。自分で見る限りは異常ないと思うのですが・・・ IDLEでRunModuleできるのにコマンドプロンプトでエラーがでるってことありますか?
212 名前:デフォルトの名無しさん [2020/01/13(月) 17:03:03.66 ID:6kghygIo.net] >>211 コマンドプロンプトのカレントディレクトリがIDLEのカレントディレクトリと違ってるんだろ
213 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 17:15:24.55 ID:nfiKoGl1.net] >>203 それ前も聞いてたけど公開して広くデータを取得する可能性考えたらJavaScript一択だと思うぞ それにカードゲームというのがいわゆるソシャゲ系で アクションや派手なエフェクトを多用するやつならともかく トランプ系の動きの少ないやつならHTML/CSS使ったほうがはるかに簡単 研究室にテスター呼んでやってもらうだけなら 自分が作りやすさだけ考えればいいんだろうけど その場合でもデータ連携で十分なんだから 得意分野の違う言語を無理やり一つにする意味あんまりない
214 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 17:58:01.77 ID:nfiKoGl1.net] >>184 書き忘れたが nameとdateにそれぞれindex張るんじゃなく (name, date)のcomposite indexにしたほうが速くなるはず julianday()を使えば歯抜け有りでもWindow関数でいけた これ使う場合はindexも(name, julianday(date))に PARTITION BY name ORDER BY julianday(date) RANGE BETWEEN 29 PRECEDING AND CURRENT ROW
215 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 18:01:34.92 ID:V22NtS8V.net] >>213 ごめんなさい 今やってることの次の研究なので、定期的に頭の中に湧いてくるみたいです。 Unityで行こうと思ってたんだけど、Pythonで機械学習の初歩も学び始めたら、 Pythonでやったほうがいいのかまた悩みはじめました 前は Unityカードゲーム ↓ データCSVで吐き出し ↓ Pythonで解析 と考えていたけど、カードゲーム中にもデータを機械学習させて、カードゲームの設定をいじるとかしたくなってきました。 そうするとPygameでやったほうがいいのかなと思うんだけど、Pygameの評判があまり良くないようなので、グルグル思案中・・・。
216 名前:180 mailto:sage [2020/01/13(月) 19:27:28.23 ID:wBE7Qmaa.net] 180ですが、教えてもらった相関サブクエリによるselectのやり方で 20万レコード30分くらいかかってたのが2分くらいまで短縮できました。 助かりました。 select後、sqlに保存は依然としてfor文ですが、それも込みで2分です。 保存部分もまとめて、 update table t1 set (select avg(score) … というやり方ができないかと思って試しましたが、うまくできませんでした。 たぶん、最初にコメントされた方はそこもわかった上で 「少なくともselect文は」と言われたのでしょう。 ウインドウ関数、コンポジットインデックスも教えてくださりありがとうございます。 また試してみます。
217 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 19:42:53.29 ID:Yl8Am7cI.net] >>216 出来ると思うんだが、内容がすでにPythonから離れているので データベース板のSQL質疑応答スレで聞いてみると良いかも
218 名前:180 mailto:sage [2020/01/13(月) 20:25:11.89 ID:wBE7Qmaa.net] >217 たしかに! 意識できていなかったのですが、ちょっとスレ違いでした。すみません。 みなさんクエリがなんとかとか言って争ってる?ので 5ちゃんねるは教えてくれる人々がいつもなんか争ってるなぁとw
219 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 20:49:48.38 ID:6kghygIo.net] >>218 DBへのクエリの出し方はジッサイトテモダイジだ。 おなじことをしたいときでも 書き順によって 30分かかったり 2分くらいで終わったりだ。 イイネ?
220 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 21:20:28.09 ID:nfiKoGl1.net] >>215 ↓実装方法を選択する一般的な思考プロセスを経てないので目移りするんじゃないのかな 1. 自分が求める機能/非機能要求を整理する 2. 評価軸を決める 3. 実装方法の選択肢を考えられる限り出す 4. 選択肢のPros/Consを把握する 5. 評価軸とPros/Consからトレードオフを見極めて実装方法を選択する UnityとかPyGameとか特定のソリューション名で考えずに もう少し抽象度あげて選択肢を考えたほうがいいと思う Pythonで全部やる、C#で全部やる、Python+C#のハイブリッドと大枠の選択肢があって ハイブリッドの場合はファイル連携、DB連携、プロセス連携、API連携といろんなレベルがある どれがいいかは上に書いた1や2が整理されてないと選びようがない
221 名前:デフォルトの名無しさん [2020/01/13(月) 21:25:54.08 ID:nwry0R0l.net] 大袈裟だな。
222 名前:デフォルトの名無しさん [2020/01/13(月) 21:52:26.47 ID:FBCsPnZa.net] 北海道のグラサンスーパーハゲザーはここにはこないのー?
223 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 22:10:39.12 ID:P1+rByUv.net] >>211 WebSite_Listの読み込みやってるあたりで外部ファイル参照してない? ファイル読み込みしてたら、ファイル名をフルパスにするか、 import osして os.path.dirname(os.path.abspath(__file__)) + '/'+filenameにしてみたら(実行ファイルと同ディレクトリの場合)?
224 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 22:12:13.05 ID:BvowWoiX.net] pathlibつかえ
225 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 10:02:51.83 ID:RNgj0nXq.net] >>198 何言ってんだ、あるぞ
226 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 10:44:24.13 ID:sNEc9p7V.net] >>215 Pythonが機械学習部分を担当し、Unityがゲーム部分を担当し、 両者が通信を行えば言ってるようなことはできる。 (そして正直それがおすすめ) 出来ないうちに色々こんな機能も欲しいって言って考えていくと、要求ばかり大きくなって 結局何も完成しないから、まずは最小限使えるものを作ってしまうべき。 最悪のケースでも、書いたコードは無駄となるかもしれないけど、 設計手法や要素技術は身に着くのだから別のプラットフォームに移植するのに始めのときより時間がかからなくなる。
227 名前:デフォルトの名無しさん [2020/01/14(火) 13:35:18.55 ID:Cb2SImdL.net] 「くだすれ」ってなんですか?
228 名前:デフォルトの名無しさん [2020/01/14(火) 13:59:52.47 ID:6KmUa3mX.net] ここが起源っぽい https://www.log soku.com/r/2ch.net/tech/1023766485/
229 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 14:01:21.23 ID:n2n8mDAV.net] pythonでデータベース使うならどれが簡単?
230 名前:デフォルトの名無しさん [2020/01/14(火) 14:10:20.88 ID:Sh3SY+TQ.net] sqlite3
231 名前:デフォルトの名無しさん [2020/01/14(火) 14:10:23.62 ID:Cb2SImdL.net] >>228 なんでそんな略称にしようと思ったんだろうな
232 名前:デフォルトの名無しさん [2020/01/14(火) 14:11:37.48 ID:Sh3SY+TQ.net] くそスレ くそが出そう半分出かかってるがトイレ遠くて困ってる くだらないスレ
233 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 14:14:12.10 ID:/8RfG7cV.net] >>229 お前が何がしたいのか次第だろう Webアプリ作ろうとしてるんだったらいくらSQLiteの扱いが簡単とはいえ選択肢に入らないし、 データ分析なんかで大きなデータセットを扱うんだったらBigQueryになるかもしれない
234 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 14:16:57.58 ID:NngjCG95.net] ポスグレをサイコPGで
235 名前:デフォルトの名無しさん [2020/01/14(火) 14:18:33.49 ID:PBX58Pvh.net] memcached
236 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 15:32:37.37 ID:ryFU8X4N.net] >>229 sqlalchemy
237 名前:デフォルトの名無しさん mailto:age [2020/01/14(火) 20:03:55.62 ID:V5Q3d6Dh.net] pandas関係です。 >>> train_df[['Embarked', 'Survived']].groupby('Embarked').mean() Survived Embarked C 0.553571 Q 0.389610 S 0.336957 >>> train_df[['Embarked', 'Survived']].groupby('Embarked').count() Survived Embarked C 168 Q 77 S 644 と2回メソッド実行が面倒です。 以下のようなDataFrameを得たいのですが、スマートな方法ありますか? Mean Count Embarked C 0.553571 168 Q 0.389610 77 S 0.336957 644
238 名前:デフォルトの名無しさん mailto:age [2020/01/14(火) 20:12:28.50 ID:V5Q3d6Dh.net] 自決しました。aggを使うのですね。
239 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 20:19:00.39 ID:3etKzhuc.net] 自決したのか!!!
240 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 20:20:27.07 ID:eL1p+DpS.net] >>238 命は大切にしろよ
241 名前:デフォルトの名無しさん [2020/01/14(火) 21:48:30 ID:sWWbL+aD.net] 超初心者な質問で申し訳ないのですが mの行列の縦の部分に行列Pを入れたいのですがどうしたらいいですか? こんな感じにしたいのです m=[[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4]] p=[5,6,7,8] m[0][3]=p[0] m[1][3]=p[1] m[2][3]=p[2] m[3][3]=p[3]
242 名前:デフォルトの名無しさん [2020/01/14(火) 22:06:55.30 ID:4urAtQVN.net] numpyが楽 import numpy as np m=np.array(m) p=np.array(p) m[:,3]=p
243 名前:デフォルトの名無しさん [2020/01/14(火) 22:19:54 ID:Cb2SImdL.net] rubyでは
244 名前:241 [2020/01/14(火) 22:29:22 ID:sWWbL+aD.net] >>242 ありがとうございます p=[5,6,7]でmの縦より一個少なくて ブロードキャストエラーって出てしまいます これはどうしたらいいですか?
245 名前:デフォルトの名無しさん [2020/01/14(火) 23:52:13.22 ID:4urAtQVN.net] >>244 縦方向の範囲も決める m[0:3,3]=p か m[1:4,3]=p
246 名前:デフォルトの名無しさん mailto:age [2020/01/15(水) 03:04:35 ID:TeTRS4cT.net] sklearnで機械学習のモデルに使えるクラスの一覧取得したいんですけどできますか?