20/01/02 15:59:02.97 ZUrZA+uS.net
>>> 0 ** 0
1
>>> 0 / 0
ZeroDivisionError: division by zero
3:デフォルトの名無しさん
20/01/02 16:02:30.65 ZUrZA+uS.net
関連スレ
Pythonのお勉強 Part62
スレリンク(tech板)
4:デフォルトの名無しさん
20/01/02 16:22:20.85 T0zeprk/.net
>>2
URLリンク(ja.wikipedia.org)
5:デフォルトの名無しさん
20/01/02 16:36:42.09 yYKIO5sw.net
北海道のグラサンスーパーハゲザーはここにはこないのー?
6:デフォルトの名無しさん
20/01/02 16:38:32.31 NYIo0K4b.net
久しぶりに貼っとくか
日本語の扱いで戸惑ったらこちらをどうぞ
URLリンク(speirs.blog17.)<)
URLリンク(d.)<)
7:デフォルトの名無しさん
20/01/03 17:34:21.06 o2JYS5/T.net
スマートに長さが決まってる配列に交互に数値をいれていくにはどうしたら良いですか?
自分でつくるとどうも長くなってしまいます
t=5
v=[]
for i in enumerate():
if i==t:
break
elif i%2==0:
v.append(1)
elif i%2==1:
v.append(4)
けっか
[1,4,1,4,1]
8:デフォルトの名無しさん
20/01/03 17:46:09.32 9yXh1BHh.net
np.array([1,4]*3).flatten()[:5]
9:デフォルトの名無しさん
20/01/03 17:47:21.41 9yXh1BHh.net
([1,4]*3)[:5]
でいけた
10:デフォルトの名無しさん
20/01/03 18:52:28.14 b0yxo6PI.net
>>9
ありごとうございます
11:7
20/01/03 20:12:56.57 o2JYS5/T.net
>>9
一行だけとは超スマートです!!
ありがとうございます!!
12:デフォルトの名無しさん
20/01/03 20:34:33.45 JUB4cBO3.net
>>7
ある言語では
v =: 5 $ 1 4
13:デフォルトの名無しさん
20/01/03 20:38:57.19 EoKPJcjT.net
草
14:デフォルトの名無しさん
20/01/03 20:42:39.36 1QSwQP8U.net
ツッコミ待ちか
15:デフォルトの名無しさん
20/01/03 21:47:45.01 cSDCrnP1.net
>>7
from itertools import islice, cycle
def take(n, iterable):
____return list(islice(iterable, 0, n))
take(5, cycle([1,4]))
16:デフォルトの名無しさん
20/01/03 22:08:54.32 3PIY9GXm.net
pyinstallerがインストールできません。
17:デフォルトの名無しさん
20/01/03 22:10:03.64 3PIY9GXm.net
コマンドプロンプトを起動
pipでPyInstallerをインストール
$ pip install pyinstaller
って書いてあるけど、windowsのコマンドプロンプトっていうことでしょうか?
やってみたけどエラーが出てインストールできません。
18:デフォルトの名無しさん
20/01/03 22:19:34.01 3C9uWk1w.net
>>17
エラーの内容をそのままでいいので貼り付けてください
19:デフォルトの名無しさん
20/01/03 22:27:22.75 3C9uWk1w.net
win10, Python3.7では
pip install pyinstallerでエラーはでなかったです
20:デフォルトの名無しさん
20/01/03 22:42:46.43 3PIY9GXm.net
すいません。
C:\WINDOWS\system32>pip install pyinstaller
'pip' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
というメッセージが出ています。
21:デフォルトの名無しさん
20/01/03 23:04:32.83 3C9uWk1w.net
>>20
%PATH%にpip.exeの場所を追加できればとりあえずは解決できると思います
22:デフォルトの名無しさん
20/01/03 23:27:59.92 3PIY9GXm.net
>>21
ファイルのある場所にパスを通すということでしょうか?
調べてみたのですが、やり方がよく分からずすいません。
23:デフォルトの名無しさん
20/01/03 23:29:36.06 CE0ocwaC.net
「Windows10 環境変数」でググれ
24:デフォルトの名無しさん
20/01/04 00:00:59.89 8qieO/zq.net
>>22
もう一度インストーラーを起動して、
関連付けのチェックを入れればいい
25:デフォルトの名無しさん
20/01/04 01:33:24.48 H/phePoP.net
キーボードの左下にあるWindowsキー(窓が刻印されたキー)と右上にあるPauseキーを同時に押す
左側の「システム詳細設定」をクリック
下のほうにある「環境変数(N)...」をクリック
「~のユーザー環境変数」にある「PATH」をダブルクリック
「環境変数名の編集」画面がでるので右上の「新規(N)」をクリック
コマンドプロンプトでwhereコマンドでpipコマンドがある場所を調べて追加(例:C:\Users\xxx\xxx\>where pip)
refreshenvコマンドを実行(例:C:\Users\xxx\xxx\>refreshenv)
>pip --version
Windows 10でPath環境変数を設定/編集する
URLリンク(www.atmarkit.co.jp)
Cコンパイラのパスを環境変数に登録する
URLリンク(www.youtube.com)
Python 環境変数設定
URLリンク(www.youtube.com)
26:その他
20/01/04 01:43:48.94 H/phePoP.net
PC をバックアップおよび復元する
URLリンク(support.microsoft.com)
コマンドでWindowsアプリを楽々管理「Chocolatey」
URLリンク(www.atmarkit.co.jp)
Qiita > chocolatey
URLリンク(qiita.com)
27:デフォルトの名無しさん
20/01/04 02:20:50.51 H/phePoP.net
プログラム技術(tech)板の過去ログ検索
URLリンク(www.google.it)検索語句
URLリンク(www.google.it)検索語句
URLリンク(duckduckgo.com)
URLリンク(duckduckgo.com)
URLリンク(duckduckgo.com)(Python)
!so python
!hatebu python
!hn python
!infoq python
!qiita python
!quora python
!amjp python
!tw python
!hashtag python
!5ch python
!r python
!slideshare python
!stackshare python
!rstc python
URLリンク(rosettacode.org)
28:デフォルトの名無しさん
20/01/04 02:24:14.73 H/phePoP.net
URLリンク(duckduckgo.com)
!yt python
!papers python
!gn python
!gnuk python
!gnnl Guido van Rossum
29:デフォルトの名無しさん
20/01/04 05:58:50.34 UVp63hNq.net
>>7
[4 ** (x % 2) for x in range(5)]
30:デフォルトの名無しさん
20/01/04 09:09:49.45 FBAmMQ8N.net
zip関数って無かったっけ?
31:デフォルトの名無しさん
20/01/04 09:24:51.99 B5eyFP88.net
>>7
[[1, 4][x % 2] for x in range(5)]
32:デフォルトの名無しさん
20/01/04 10:35:07.19 d9ICAhD8.net
>>29が今のとこ一番分かりやすい
33:デフォルトの名無しさん
20/01/04 10:54:36.43 GvN9lrG0.net
windows のコマンドプロンプトで python を動かすのは
あまりお勧めできないけどな
苦労が多すぎて、得るものが少ない
34:デフォルトの名無しさん
20/01/04 11:41:40.61 hpecUN4N.net
そのココロは?
- windowsでpythonやるならコマンドプロンプトよりも××
- windowsでやるならpythonよりも××
- pythonやるならwindowsよりもlinux
35:デフォルトの名無しさん
20/01/04 13:00:02.96 trUJS7QS.net
>>30
ちょっとひねらないと嬉しい結果にならんな
>>> list(zip([1,1,1],[4,4,4]))
[(1, 4), (1, 4), (1, 4)]
36:デフォルトの名無しさん
20/01/04 13:10:53.70 trUJS7QS.net
>>33-34
横からだが
WSL使ってる人 → そのままWSLで
WSL使ってない人 → git for windows 入れてそれと一緒に入る git bash お薦め
37:デフォルトの名無しさん
20/01/04 13:20:22.82 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:デフォルトの名無しさん
20/01/04 13:31:07.19 trUJS7QS.net
>>33 >>36
tdm-gcc (x64) 入れると
MinGW Command Prompt っていうのが付いてくるのでそっち使ってる
39:デフォルトの名無しさん
20/01/04 13:57:37.93 hpecUN4N.net
自分の場合、ふだんnodeとかはgit bashで使ってるけどpythonだけはコマンドプロンプト使ってた。
venv使ってるのとエクスプローラからパスをdrag&dropする使い方が多いんで。
コマンドプロンプト自体がお勧めできないというのは置いておいて、特にpython使うのに
向いていないとは感じないがな。
40:デフォルトの名無しさん
20/01/04 18:21:36.62 k4tVVk2l.net
どうしてcmdがおすすめできない訳?
41:デフォルトの名無しさん
20/01/04 20:01:48.09 Q3FXXgpV.net
10年位前のpython2.7の頃に比べれば windows10 python3.8はものすごく使い
やすくなっている
42:デフォルトの名無しさん
20/01/04 20:03:30.69 Q3FXXgpV.net
wsl出てからpythonはwslだったけど、個人的にちょっと開発するなら
windows10で十分
43:デフォルトの名無しさん
20/01/05 00:25:24.67 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:デフォルトの名無しさん
20/01/05 00:52:34.25 NzdiaSgk.net
>>43
hoが何でどういう風にデータが入ってるのか教えてくれ
45:デフォルトの名無しさん
20/01/05 01:10:24.54 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:デフォルトの名無しさん
20/01/05 01:19:33.03 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:デフォルトの名無しさん
20/01/05 01:32:31.46 BPHXVrhY.net
Ruby なら、`~` でコマンドを実行できる
`コマンド 1`
`コマンド 2`
`コマンド 3`
scrapy はコマンド名か?
それなら、下のようにできる
`scrapy ~`
`scrapy ~`
`scrapy ~`
コマンドを呼ぶぐらいなら、Ruby以外にも、シェルスクリプト・PowerShell でも出来る
48:27
20/01/05 02:09:21.37 k//yuqW0.net
!hackster python
URLリンク(www.twitter.com)
URLリンク(www.youtube.com)
URLリンク(www.hackster.io)
Python on Hardware
Power your homes and bots with Python!
URLリンク(www.hackster.io)
(deleted an unsolicited ad)
49:デフォルトの名無しさん
20/01/05 03:43:21.88 y+bEWN5I.net
>>43
要は2つの隣接する単位ベクトルho[i]とho[i+1]の演算を行いたいが、iが末尾の時はi+1の代わりに0番目を使いたいということか?
それならまずi+1または0を変数jに入れて、ho[i]とho[j]の処理だけを書けば良さそう。
50:デフォルトの名無しさん
20/01/05 04:26:51.43 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
20/01/05 12:09:19.59 cNQ0xZ86.net
>>50
びっくりするほど短くなるんですね
ありがとうございます
助かりました
52:デフォルトの名無しさん
20/01/05 12:25:51.05 Q3EjVbhD.net
>>51
そもそも命名規則とか意識した方がいい
自分でコード読めなくなるぞ
53:デフォルトの名無しさん
20/01/05 13:21:59.71 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:デフォルトの名無しさん
20/01/05 13:22:23.53 qO+R3XJX.net
長さが違うものでもzipできるの?
55:デフォルトの名無しさん
20/01/05 14:57:09.36 NzdiaSgk.net
>>53
>Python keyword not valid identifier in numexpr query
Pythonのキーワードはnumexprクエリにおいて有効な識別子ではありません
“class”はPythonのキーワード
56:43
20/01/05 15:49:37.35 cNQ0xZ86.net
>>52
はい、命名規則つけるようにします。
ほとんど後でメンテナンス不可能になって投げ捨てる事になってしまうので
ちゃんとやることにします
57:デフォルトの名無しさん
20/01/05 22:53:56.79 t/h3kgdg.net
>>55
あああ~、、、
ありがとうございます。
結構悩んだんだけど、予約語でしたか、、、
58:デフォルトの名無しさん
20/01/05 23:08:33.53 CBy/ZWII.net
seleniumのwebdriverwaitが100%タイムアウト返してくるんですけど、これ考えられる原因あります?
waitの時間伸ばすしか対策ないんでしょうか?
59:デフォルトの名無しさん
20/01/05 23:58:22.41 NzdiaSgk.net
>>58
ImplicitWaitしてて
検索条件が間違ってる可能性がある
デバッガでブレイクポイント設定してステップ実行で試せば
本当にタイムアウトしてるのか条件が間違ってるのか切り分けられる
60:デフォルトの名無しさん
20/01/06 00:08:19.56 VrovJO3c.net
>>59
具体的には
URLリンク(colab.research.google.com)
の57行目でタイムアウト返ってくるんですよね…
この場合だとec.element_to_be_clickableの中身が間違ってるんでしょうか…
61:デフォルトの名無しさん
20/01/06 00:28:29.42 zQo0hVCB.net
データフレームに含まれるNoneデータの個数を数えようとしています
df_bool = (df_combine == None) ①
number_of_outliers = df_bool.sum() ②
でいけるかと思ったんですが、dfにNoneデータに対して①はFalseの判定でした。
どうやって数えればいいんでしょうか?
62:デフォルトの名無しさん
20/01/06 01:16:53 78RinjQr.net
>>60
エラーが返される57行目の前に
Python3.7以降ならbreakpoint()と書けばブレイクポイントが設定されて
標準のデバッガが起動されるのでnとかsでステップ実行したり任意のコードを実行したりできる
IPythonのデバッガを使いたければimport ipdbして
ブレイクポイント設定したいところでipdb.set_trace(context=10)
人の書いたコードを丸っとコピペするのは別にいいけど
間違ってるかどうかを自分で確かめられないようなら潔く使うのは諦めたほうがいい
63:デフォルトの名無しさん
20/01/06 01:17:07 78RinjQr.net
>>61
df.isna().sum()
64:デフォルトの名無しさん
20/01/06 10:06:33.60 bAE45PWZ.net
>>63
ありがとう。助かりました。
65:デフォルトの名無しさん
20/01/06 23:59:51.35 VrovJO3c.net
すいません…結局わかりませんでした…
とりあえずelement_to_be_clickableの中身でエラー起こしてるみたいですが…
構文は間違ってないですし、IDの名前も間違ってないんですよね…
66:デフォルトの名無しさん
20/01/07 00:20:44.83 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:デフォルトの名無しさん
20/01/07 00:29:10.58 PWzkvPR1.net
>>66
runtime-menu-buttonが存在するところは確認済です
一応昨日180秒でやりましたが結果は変わりませんでした
68:66
20/01/07 02:08:13.14 ueOqy5pf.net
600 ~ 1,800秒で、やってみれば?
自分が待てる限界時間まで、やってみれば?
69:デフォルトの名無しさん
20/01/07 02:39:18.92 sZs6mHzs.net
俺も以前開発ツールで見えているのにクリック出来なくてドハマりした
一度そのエレメントが見えるところまでまでスクロールすればイケルと思う
理由は分からないw
面倒だから全スクロール
execute_script("window.scrollTo(0, document.body.scrollHeight);")
70:デフォルトの名無しさん
20/01/07 03:04:54 sMehhi+2.net
headlessじゃなくブラウザを画面表示してデバッガでステップ実行すれば
本当にタイムアウト時間内に要素が求める状態になってないのか
それとも求める状態になってるにもかかわらず取得できないのか一発で分かるやろ
後者ならステップ実行時にto_be_clickableじゃなく
単にfindで要素取得できるかどうかとか
取得できるならそれをclick()できるかどうかとか
正攻法で切り分けしていけばいい
71:デフォルトの名無しさん
20/01/07 07:30:53.46 Thq5It+S.net
他の要素の下になってクリックできないってこともある。
72:デフォルトの名無しさん
20/01/07 07:48:08.12 gM3QDlRr.net
見えてすら無いに一票
73:デフォルトの名無しさん
20/01/07 11:17:44 DsG2B72o.net
pandasのread_excelでシート読むときに、セル内の関数を読み書きするのはどうしたらいいんでしょうか
具体的には=いまセルにtext(today()+1,"mmdd")が入ってて、read_excelすると1008が取得中できるのですが
today()+nと操作したいです
74:デフォルトの名無しさん
20/01/07 12:42:25.03 j68rdTp2.net
もちろんできないのであきらめる
75:デフォルトの名無しさん
20/01/07 12:54:01.36 j68rdTp2.net
OpenPyXLなら式操作できるかな
xlrdでもいいのかも知れないが
"Please use openpyxl where you can..."
なんてわざわざ書いてあるライブラリ使わんでもえやろ
76:デフォルトの名無しさん
20/01/07 14:39:25.87 sMehhi+2.net
>>73
1. xlwingsやCOM使ってExcelを開いて再計算させてからpandas使う
2. Excelの計算式は捨ててpython側で計算式を定義する
3. openpyxlで計算式をパースしてpythonで計算し直す (茨の道)
77:デフォルトの名無しさん
20/01/07 15:07:43.76 YTm5sjhC.net
seabornでlmplot使っているのですが、DFのラベルでlatency(msec)や[msec]として単位をグラフの軸ラベルを記載しようとするとエラーになります。
78:デフォルトの名無しさん
20/01/07 15:09:01.88 YTm5sjhC.net
多分[]や()が予約後だからかとおもいますが、DFのラベル名に単位を記載しようとするときはどのようにするべきなのでしょうか?
79:デフォルトの名無しさん
20/01/07 16:20:37.06 sMehhi+2.net
>>77
角括弧や括弧があってもクウォートして文字列として扱われてれば問題無いはずなので
エラー内容とそのエラーが再現する最小限のコードを公開したほうがいい
80:デフォルトの名無しさん
20/01/07 19:12:15.21 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:デフォルトの名無しさん
20/01/07 19:13:26.51 cN6CR2jQ.net
結果
0 1700
1 0
2 0
3 0
4 0
0 0
1 0
2 0
3 0
なんでインデックスが4まで行くと0になってしまうのでしょう?
アホみたいですが、教えて下さい。
82:デフォルトの名無しさん
20/01/07 19:22:14.99 cN6CR2jQ.net
>>81
すいません。
自己解決しました。
関数の呼び出し先の問題でした。
疲れ切ってます。 org
83:デフォルトの名無しさん
20/01/07 19:50:51.58 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:デフォルトの名無しさん
20/01/07 19:55:20.61 Bxvs3Isv.net
df.iloc[1,1]
85:デフォルトの名無しさん
20/01/07 20:03:44.84 cN6CR2jQ.net
>>83
すいません。
無視してください、また変なこと聞きました。
もう無理だ・・・寝ます・・・。
86:デフォルトの名無しさん
20/01/07 22:05:07 cN6CR2jQ.net
q75, q25 = np.percentile(col, [75 ,25])
colが整数だけのときは正しい値が入るのですが、colに少数が入ると0.0になってしまいます
np.percentileって少数には使えないのでしょうか?
87:デフォルトの名無しさん
20/01/07 22:19:19 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:デフォルトの名無しさん
20/01/07 23:10:02 cN6CR2jQ.net
>>87
あれ、本当ですね
ここが原因と思ってたら何が原因か分からなくなってきた
89:デフォルトの名無しさん
20/01/07 23:17:56 cN6CR2jQ.net
四分位範囲で外れ値の値だったばあいフラグを立てる関数を作ったのですが、
なぜかデータが整数では正常動作するのに、少数が含まれているとフラグで1を立てても0になります。
かれこれ数時間悪戦苦闘しているのですが、原因わからず・・・。
どこかにコードを書き込んで質問できればいいのですが、そのような掲示板ありませんでしょうか?
本当に初心者ですいません。
90:デフォルトの名無しさん
20/01/07 23:30:09.50 Es2WAZts.net
つideone
91:デフォルトの名無しさん
20/01/07 23:55:26.90 cN6CR2jQ.net
>>90
ありがとうございます。
92:デフォルトの名無しさん
20/01/07 23:57:52.11 cN6CR2jQ.net
URLリンク(ideone.com)
40行目の
df.iloc[i][output_column] = 1
が怪しいとおもうのですが、取り込んだdfが整数だけのときは1が書き込めているのですが、
dfに小数が含まれているときは書き込めていないようです。
なぜなのでしょう・・・・・。
93:デフォルトの名無しさん
20/01/08 12:53:13.99 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: URLリンク(pandas.pydata.org)
とりあえず df.loc[i, output_column] = 1 にすれば動くけど
普通はenumerateとかせずにapply使う場面だと思う
df[output_column] = df[chk_column].apply(is_outlier)
94:デフォルトの名無しさん
20/01/08 17:08:03.84 Sre2vN3k.net
df['price_edited'] = df['price'].apply(lambda a: int(a[1:]) if a.startswith('$') else 0)
95:デフォルトの名無しさん
20/01/08 18:24:29.64 xdUcjCBz.net
>>67
クリックできるようになるまで待つのをやめて、ボタンが現れるのに十分と思われる時間待った後で普通にクリックしてみる。
そうするとなんでクリックできないのか分かるかもしれない。
96:デフォルトの名無しさん
20/01/08 19:32:52.69 j91Gwtaz.net
map, filter, reduceとか色々あるけど、pythonでこの辺って使う機会ある?
97:デフォルトの名無しさん
20/01/08 19:59:10.33 NG22H+Rz.net
ほとんどない
リスト内包表記の方が可読性高いし、複雑な処理にはどうせpandasとか使うし
98:デフォルトの名無しさん
20/01/08 20:02:38.71 cyxQSndQ.net
pythonに限らずどの言語でも用意されてるがどの言語でも使わない
99:デフォルトの名無しさん
20/01/08 20:06:21.39 HaPwADKT.net
mapは、リスト中の数字と数値を数字に統一して、ソートできるように再マッピングするときに使うことはある
100:デフォルトの名無しさん
20/01/08 20:07:25.06 cBWLj0dO.net
>>98
じゃあどうするの?
for文?
101:デフォルトの名無しさん
20/01/08 20:10:23.35 v4o4ZY0H.net
>>96
mapは内包表記を使うほどでもないとき
競技プログラミングとかで入力を全部int型のリストに置き換えるときとかに使うぞ
a,b,c = map(int,input().split())って感じで
102:デフォルトの名無しさん
20/01/08 20:28:49.09 w1X5ZQ1+.net
なるほどlambda書かなくていいケースなら短いんだな
103:デフォルトの名無しさん
20/01/08 20:31:21.99 rc02anx7.net
競プロで使うといえば、sys.stdinとcollections.dequeも
104:デフォルトの名無しさん
20/01/08 21:13:48.14 U2S7mQMy.net
>>96
個人用のコードの場合はcurryやpipeと合わせてそこそこ使うけど
他人が読み書きするコードの場合は基本的に内包表記に揃えてる
他の言語と違ってpythonの場合は
そのままだと処理つなげないからmap/filter/reduceだと簡潔に書けない
105:デフォルトの名無しさん
20/01/08 21:16:10.78 cBWLj0dO.net
>>98
ねえねえ
106:デフォルトの名無しさん
20/01/08 21:23:57.62 rc02anx7.net
むしろ、内包表記の方が使わんわ
107:デフォルトの名無しさん
20/01/08 21:28:12.52 cyxQSndQ.net
昔はシュワルツ変換とかあったが今のpythonじゃそんなの聞かないだろ?
108:デフォルトの名無しさん
20/01/08 21:28:32.46 j91Gwtaz.net
>>101
mapってこれa,b,cに直で突っ込めるん?
109:デフォルトの名無しさん
20/01/08 21:48:20.80 rc02anx7.net
>>108
URLリンク(ideone.com)
URLリンク(docs.python.org)
110:デフォルトの名無しさん
20/01/09 09:06:17.58 CHl595iH.net
>>106
競プロのことは知らないけど、内包表記の方が基本短くならない?なにか違う理由で使わないの?
111:デフォルトの名無しさん
20/01/09 10:22:53 CxgUH5at.net
バイト列に関して質問です。
文字タイプのバイト列情報の文字を、日本語に復元したいです。
例えば、
\x12\x34\x56\x78
という文字列があります。
これを
あいう
のような意味のわかる日本語にしたいです。
その場合、
print(b'\x12\x34\x56\x78'.decode('cp932'))
で復元できます。
そこで、復元したい文字列は複数あるので、
\x12\x34\x56\x78 を変数に代入してから、
for文で復元しようとしています。
しかし、変数に代入したら b をつけられません。
どうすればバイト列にしてから復元できるのでしょうか?
112:デフォルトの名無しさん
20/01/09 10:37:07.44 I9hACzJa.net
b'\x12\x34\x56\x78'を入れちゃだめなの?
113:デフォルトの名無しさん
20/01/09 11:18:23.26 nzRPJUvL.net
データフレームのラベルにlatency[msec]と単位をいれたいのですが、
lm_model = smf.ols(formula="latency[msec]~x", data=df).fit()
とすると
latency is not define
となります。
latency_msecとするとokなのですが[]や()を使うとダメ
[]、()をラベルに使ってはいけないのでしょうか?
114:デフォルトの名無しさん
20/01/09 11:29:08.27 m2IVdqCX.net
>>112
レスありがとうございます。
変数にb'\x12\x34\x56\x78'を入れるということでしょうか?
bと文字列 \x12\x34\x56\x78 を合体させる方法が分からないんですよね・・・
115:デフォルトの名無しさん
20/01/09 12:33:47.44 0RBXSUPh.net
numpy とか pandas 使うとそっちで解決しちゃう
116:デフォルトの名無しさん
20/01/09 12:39:08.38 j8mTnocC.net
>>110
それ答えてもいいけど、過去何度も何度も繰り返された議論が始まるだけだぞ
117:デフォルトの名無しさん
20/01/09 12:45:59.86 81iybZRX.net
>>114
s = '\x12\x34\x56\x78'
b = s.encode('latin-1')
118:デフォルトの名無しさん
20/01/09 15:59:03.66 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'))
URLリンク(www.onlinegdb.com)
119:デフォルトの名無しさん
20/01/09 16:52:22.09 OQFCwUQr.net
l = [[1,2,3],[4,5]]
から
[1,2,3,4,5]
に変形したいのですが、リスト内包表記だけでできますか?
120:デフォルトの名無しさん
20/01/09 17:49:39.42 CxgUH5at.net
>>117
すみません、
出来ませんでした
>>118
すみません、出来ませんでした
121:デフォルトの名無しさん
20/01/09 18:04:23.16 VxfXfT1S.net
>>119
できるけどやめれ
foo = [[1,2,3],[4,5]]
[x for inner in foo for x in inner]
#=> [1, 2, 3, 4, 5]
122:デフォルトの名無しさん
20/01/09 18:05:14.78 VxfXfT1S.net
>>120
↓これ動かないの?
URLリンク(www.onlinegdb.com)
123:デフォルトの名無しさん
20/01/09 18:11:11.27 CxgUH5at.net
>>122
全部見てませんでしたすみません
そちらは動きました。
自分のでも動くか試してみます
124:デフォルトの名無しさん
20/01/09 18:53:25.08 KHoLcO1x.net
>>119
sum(l,[])
125:デフォルトの名無しさん
20/01/09 19:12:34.29 NaQHxKOV.net
>>124
はえ~シンプル
一階層だけならこれでいいな
126:119
20/01/09 19:42:16.05 DanfNow/.net
>>121 のやり方が3次元以上でも対応できるのでいいですね。
おっさんありがとう。
127:デフォルトの名無しさん
20/01/09 19:56:28.10 nuQhSBU1.net
map, reduce, filterと来れば次はflatten
でもpython標準にはない
128:デフォルトの名無しさん
20/01/09 20:03:36.46 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:デフォルトの名無しさん
20/01/09 20:06:14.36 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]
めんどい
130:デフォルトの名無しさん
20/01/09 20:41:39.72 ZiyVM7wM.net
df.query("tag.str.contains('log')")
だと、'LOG'や'Log'にマッチしないですが、queryを使った何か方法あります?
131:デフォルトの名無しさん
20/01/09 20:49:32.76 vYl+3riX.net
df.query("tag.str.contains('log') or tag.str.contains('LOG') or tag.str.contains('Log')")
132:デフォルトの名無しさん
20/01/09 20:50:05.73 hJpPvhWv.net
dfにlower()を適用した行を追加する
133:デフォルトの名無しさん
20/01/09 20:54:34.17 vYl+3riX.net
df.query("tag.str.contains('log', case=False)")
または
df.query("tag.str.contains('[lL][oO][gG]')")
134:130
20/01/09 20:59:41.18 ZiyVM7wM.net
case=Falseでいいです。
おっさんありがとう。
135:デフォルトの名無しさん
20/01/09 21:05:50.10 o7IUVb3B.net
あなたのハゲにサクセスしたい
136:デフォルトの名無しさん
20/01/09 22:29:38.19 rdMUJkc5.net
散布図書いて
凡例1:回帰直線あり
凡例2:回帰直線なし
としたいんですが
sns.lmplot(x="total_bill", y="tip", hue="smoker", data=tips, legend=False, fit_reg=False)
とfit_regを使うと凡例1、2とも回帰直線あり、なしで統一されますよね。
凡例ごとに回帰直線あり、なしを設定する方法ないでしょうか?
137:デフォルトの名無しさん
20/01/09 22:30:27.61 rdMUJkc5.net
もしくはlmplotで凡例1の回帰直線を書いて、
その後に凡例にの散布図を重ねるとかできるといいのですが・・・。
138:デフォルトの名無しさん
20/01/10 08:58:33.71 rEsoa4AS.net
pywinautoをインストールし、以下を実行するとエラーが出ます。
Python 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from pywinauto.application import Application
---中略----
TypeError: item 2 in _argtypes_ passes a union by value, which is unsupported.
>>>
何かご存じの方いらっしゃいませんか?
139:デフォルトの名無しさん
20/01/10 17:45:23.17 DFPKFrGt.net
win32apiは用意されてるのかな
140:デフォルトの名無しさん
20/01/10 18:01:26.41 rEsoa4AS.net
>>139
pywin32 221はインストールしてあります。
import win32api
と入力しても何も言われないので、インポートできてると思われます。
141:デフォルトの名無しさん
20/01/10 18:33:13.96 ygDjj+Gv.net
>>138
これかもね
URLリンク(github.com)
142:デフォルトの名無しさん
20/01/10 19:11:57.27 rEsoa4AS.net
>>141
python3.7.4に下げたところ、うまく動きました!!
大変助かりました。ありがとうございました!
143:デフォルトの名無しさん
20/01/11 12:56:53.77 +sNn4E0T.net
Webサイトの動的なパラメータを取得し、
PythonでCSVに保存したいのですが、
requestsでのJSの動的なパラメーターの操作・取得方法が分かりません。
どのようにしたらいいでしょうか?
具体的には"URLリンク(fast.com)で通信速度を定期的に
測りたいです。
144:デフォルトの名無しさん
20/01/11 13:14:12.97 I3GzSO2X.net
api直で叩けるならrequestsでいいけど、
普通はseleniumの出番じゃないかな。
結果表示のelementが表示されるまで待って、そのあとselectorを使って読み取る。
145:デフォルトの名無しさん
20/01/11 18:57:41.73 8SjMRVd0.net
wxpythonのcomboboxを連携させる場合ってどうやればいいんですかね?
gyou = ('あ行','か行','さ行')
a = ('あたい,'いか','うなぎ','えのぐ,'おもいで')
k = ('かみなり','きなこ','くまで','けむし','こたつ')
s = ('さしみ','しらす','するめ','めまい','もも')
のリストを作り、
combobox_1 = wx.Combobox(panel1, -1, choices = '行',style=wx.CB_DROPDOWN, pos=(0, 390),size=(150, 20))
で選択された値をcombobox_2に反映させたいのですが、うまくいきません
146:デフォルトの名無しさん
20/01/11 19:07:58.90 l/QLWHKH.net
URLリンク(wxpython-users.1045709.n5.nabble.com)
147:デフォルトの名無しさん
20/01/11 19:12:33.28 l/QLWHKH.net
URLリンク(www.python-izm.com)
148:デフォルトの名無しさん
20/01/11 21:39:28.93 8SjMRVd0.net
>>146
>>147
ありがとうございます。
理解できるようがんばります。
149:デフォルトの名無しさん
20/01/11 22:10:14.08 mXX0vnIh.net
全体の質問スレがなかったのでここに質問します
私はWebサービス作れたら面白いな程度に考えています。そこで質問があります。いきなりPythonで大丈夫でしょうか?基盤となる他の言語があるのでしょうか?また、Webサービスを作れるものなのでしょうか?具体例ではTwitterなど超有名なものが出されるので…
150:デフォルトの名無しさん
20/01/11 22:18:24.21 IeHCZeyd.net
型ヒントつけまくったら速度って向上すんのかな
あくまで可読性の問題?
151:デフォルトの名無しさん
20/01/11 22:20:37.40 mXX0vnIh.net
これくだすれってコードすれですかね?
でしたら上のやつ無視してくださいすみません
152:デフォルトの名無しさん
20/01/11 22:31:40.00 tdQ2h9sk.net
くだすれって何なの?
意味がわからん
153:デフォルトの名無しさん
20/01/11 22:56:40.09 cnAODivo.net
>>150
type hintは基本的に3rd partyのtype checker用なので
何もせずに速度が向上したりはしない
型をチェックして適切な実装を選択することで実行速度が変わるようなロジックを自分で作ったり
そういうライブラリを使えばhint無しよりは速度が向上する可能性はなきにしもあらず
3.7より前のバージョンはtype hintをコードの読み込み時に評価するので
評価コストの分だけtype hintがあると読み込みが遅い(らしいが、気にしたことはない)
154:デフォルトの名無しさん
20/01/11 22:57:26.01 /PybViq/.net
>>149
WebサービスはWebの知識があればPythonとPythonのフレームワークで構築できます
155:デフォルトの名無しさん
20/01/11 23:10:13.39 mXX0vnIh.net
>>154
ありがとうございます!Webの知識もないプログラム初心者なのでHTML・CSSを学んでから、または学びつつPythonを勉強しようと思います!
156:デフォルトの名無しさん
20/01/11 23:16:15.67 cnAODivo.net
Webの知識にはHTML/CSSだでなく
HTTP, JavaScript(初級)/DOM, 各種ブラウザの開発ツール使い方
くらいは含まれてると思われる
サーバーサイドはパフォーマンス気にしなければPythonだけでほぼなんでもできるが
モバイルアプリやリッチなWebクライアントはPythonだけでは作れない
157:デフォルトの名無しさん
20/01/11 23:22:24.84 mXX0vnIh.net
>>156
私にはまだ早い領域のようですね…
教えて下さった言語含めもうちょっと調べてみます
ありがとうございます!
158:デフォルトの名無しさん
20/01/11 23:32:59.83 IeHCZeyd.net
>>153
やっぱそうなんだ
コンパイルしてるわけじゃないしな
159:デフォルトの名無しさん
20/01/12 01:21:03.35 PW2KE/yt.net
>>143-144
Ruby, selenium webdriver, headless モードで、38 Mbps
sleep 45 が無いと、すぐに、0 が取得されてしまう!
つまり、このdiv が、最初から存在していて、0になっているのだろう。
<div class="speed-results-container succeeded" id="speed-value">0</div>
理想的には、結果が出たときに現れる、要素を待つのが良い。
その方が、sleep で時間指定しないで済むから
require "selenium-webdriver"
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--headless')
options.add_argument('--disable-gpu')
driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 60 # 要素の検索の timeout
driver.navigate.to "URLリンク(fast.com)
sleep 45
puts driver.find_element( :id, "speed-value" ).text
driver.quit
160:デフォルトの名無しさん
20/01/12 03:20:28.12 M8sF3s6B.net
>>159
capybara使えよ
implicit_wait=60とかsleep 45とかありえんてぃ
先週のWebDriverWaitを10回くらい繰り返してるクソコードよりもひどいぞ
>>143
fast.com cliでググれ
161:デフォルトの名無しさん
20/01/12 03:26:40.80 8P2rssJG.net
次のプロジェクトを何の言語でやるか、検討した結果PHP派とPython派に分かれた。
Rubyはみんな嫌がった。
162:デフォルトの名無しさん
20/01/12 03:27:02.71 aGAZplX2.net
>>143
ありがとうございます。
Python通ってないので参考になります。
>>159
>>160
cliあったんですね!
Macのcrontabだとスリープ時に実行できないので
サーバー化してるRaspberryでcrontab回そうと思います。
助かりました。
ありがとうございます。
163:デフォルトの名無しさん
20/01/12 10:35:42.78 eDYJZWaK.net
データフレームで
target shape
1 0
0 1
1 1
としたときtarget==shapeのデータをスライスとして取り出したいのですが、
同一データフレーム内のデータを比較してスライスするにはどうすれば良いのでしょう?
164:デフォルトの名無しさん
20/01/12 11:16:34.31 /bwylFW9.net
df[df[‘target’]==df[‘shape’]]
または
df.query(‘target==shape’)
165:デフォルトの名無しさん
20/01/12 12:31:28.08 eDYJZWaK.net
>>164
ありがとうございます。
Pandasのスライスの表記難しい・・・。
使いこなせる自身がないんですが、やってるうちになれてくるものなのか・・・。
166:デフォルトの名無しさん
20/01/12 12:34:18.40 eDYJZWaK.net
a=Fale, b=True
だけをスライスしたいのですが、
df_correct = df[df['a'] == False & (df['b']==True)]
とすると
a==False
の条件でスライスされ
b==True
が無視されます。
なぜなんでしょう?
167:デフォルトの名無しさん
20/01/12 12:35:45.17 eDYJZWaK.net
>>166
失礼しました。
自分の投稿みて気づきました。
前の条件を()でくくっていなかったですね。
orz
168:デフォルトの名無しさん
20/01/12 13:20:04.86 eDYJZWaK.net
>>164
queryなんてあったんですね
昔accessやってたものとしてはquery使ったほうが可読性高いな。
169:デフォルトの名無しさん
20/01/12 13:20:54.36 eDYJZWaK.net
>>164
python的には内包表記とqueryではどちらが推奨なんでしょうか?
170:デフォルトの名無しさん
20/01/12 13:48:50.66 AzrAZmp9.net
python 3 で16進数文字列をutf-8文字列に変えたいんですが、簡単な方法ないですか?
171:デフォルトの名無しさん
20/01/12 14:24:18.86 M8sF3s6B.net
>>170
>>111と同じなのか違うのか?
違うのなら簡単な方法じゃなくめんどくさい方法でどうやってるのかをまず書いて
172:デフォルトの名無しさん
20/01/12 15:47:52.03 iU1LDXiT.net
いつのまにかインデントが崩れて正常に動作しなくなってた
でも中括弧がないので元の状態が分からない
元に戻せない
173:デフォルトの名無しさん
20/01/12 19:12:52.42 N3Z2zUK8.net
import binascii
print('あ'.encode('utf-8'))
print(binascii.a2b_hex('e38182'))
print(binascii.a2b_hex('e38182').decode('utf-8'))
174:デフォルトの名無しさん
20/01/12 20:02:34.80 7XI25yF1.net
>>172
ワロタwwwwww
175:159
20/01/12 20:18:51.94 PW2KE/yt.net
>>160
<div class="speed-results-container succeeded" id="speed-value">0</div>
この要素は、sleep 45 が無いと、すぐに、0 が取得されてしまう!
つまり、このdiv が、最初から存在していて、0になっているのだろう
このサイトを1分ぐらい見てると、数値が動くだろ
たぶん、1分ぐらい掛けて、何回も非同期処理で、この値を書き換えている。
だから、1分近く待たないと、速度が安定しない
176:デフォルトの名無しさん
20/01/12 20:56:59.94 UO120eKA.net
お金を計算するわけでもないのですが
小数点の計算に全部decimalつけるの面倒なんですけど
何とかならないですか?
177:デフォルトの名無しさん
20/01/12 21:09:49.97 M8sF3s6B.net
>>175
「0 が取得されてしまう!」じゃねーよ
もうちょっと頭つかってくれ
速度が安定するまで待ちたいなら
「wait until 速度が安定?」みたいなコードを書けばいいだけだろ
測定完了を示す状態変化があるのに
わざわざ速度が安定したかどうかで判定する必要もないんだけどさ
178:159
20/01/12 21:32:01.79 PW2KE/yt.net
他人のサイトをデバッグ・解析して、測定完了を示す状態を見つけるとか、それは大変!
仕様書もないのに、できない。
そういう解析を仕事としては色々やってきたけど、面倒
179:デフォルトの名無しさん
20/01/12 21:59:15.48 LmjMg5d7.net
rubyくん
ID変え忘れてるよ
180:デフォルトの名無しさん
20/01/12 23:01:37.62 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:デフォルトの名無しさん
20/01/12 23:44:09.77 8exfRg1S.net
少なくともSELECT文はfor文で回す必要がないように見える
ウィンドウ関数とか使って、1回のSELECT文けで、その後のUPDATE文の条件として使いたいscoreListAve, date, nameを抽出出来るはず
182:180
20/01/12 23:53:05.86 aXgbqZV+.net
>181
ウインドウ関数を知らないので調べてみます。
ありがとうございます。
183:デフォルトの名無しさん
20/01/13 01:51:12 6QaMEdT1.net
where の条件に、日付・名前があって、
それらに索引インデックスが付いていないのなら、絞り込めず、全探索になるから!
例えば、100万レコードあれば、それらをすべて検索してから、チェックするから!
基本的には、検索条件に索引インデックスが付いていないものは、全探索になるから検索しない!
情報処理資格のデータベーススペシャリストの教科書で、
データベースの設計を勉強すべし!
184:180
20/01/13 02:43:19.89 wBE7Qmaa.net
>183
助言ありがとうございます。
書き忘れましたがname, dateのIndexはすでに作ってます。
cur.execute('create index dateIndex on table(date)')
Indexでだいぶましになったのですが、それでも現状、
forが100進むのに1秒くらいなので、20万レコードで30分くらいかかります。
185:デフォルトの名無しさん
20/01/13 04:48:03 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:デフォルトの名無しさん
20/01/13 04:59:38 nfiKoGl1.net
相関サブクエリのほうはブロックされたからここに貼っとく
URLリンク(ideone.com)
187:180
20/01/13 05:49:10 wBE7Qmaa.net
>185
大変ありがとうございます。
歯抜け有りなので相関サブクエリの方をまず試してみます。
ここまで見本のコードを書いていただければ自分のレベルでも
なんとか取り入れられそうです。
188:デフォルトの名無しさん
20/01/13 09:52:19.26 kwqyPibM.net
>>187
歯抜けありでもwidow関数で書けるぞ。
相関サブクエリなんて過去の技術を使うな。
189:デフォルトの名無しさん
20/01/13 09:57:49.58 Co2mHaqk.net
>>180のコードでメモリが足りているならsqlをどうこうする必要はないと思うが。
190:デフォルトの名無しさん
20/01/13 10:30:58.73 BvowWoiX.net
1回のクエリで行けるところを、わざわざループでクエリ投げまくる意味はないでしょ
191:デフォルトの名無しさん
20/01/13 10:58:18.23 bfpXOE5X.net
クエリが苦手でPythoに慣れているなら意味はある
クエリは言語としては非常に特殊だからね
常用しない人にはとっつきづらい
192:デフォルトの名無しさん
20/01/13 10:59:15.38 Yl8Am7cI.net
SQLの書き方次第で100倍は効率良くなる事案
193:デフォルトの名無しさん
20/01/13 11:38:01.76 nlvLw0Pz.net
>>189
遅いから困ってるって明記されてるのにメモリーとか何言ってるんだよw
>>191
書捨てならそれでいいけどよく使うならSQLは覚えていて損はないと思うぞ
考え方に慣れればそれほど難しくないし
194:デフォルトの名無しさん
20/01/13 13:13:36.22 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:デフォルトの名無しさん
20/01/13 13:19:03.45 S1eVQBPA.net
valuesで取ってから二乗して和をとってしないと行けないんじゃないの
196:デフォルトの名無しさん
20/01/13 13:21:21.99 dQZR7cFx.net
URLリンク(pastebin.com)
このコメントアウトしているコードを実行するとエラーが出るのですが、何が悪いのでしょうか?
197:デフォルトの名無しさん
20/01/13 13:24:28.21 uorRSC+x.net
>>194
math.sqrtはpythonの標準関数でスカラーにしか対応していない
np.sqrtにすればたぶん動く
198:デフォルトの名無しさん
20/01/13 13:37:39.33 +xCO6TbN.net
>>196
formatなんて組み込み関数はない
199:デフォルトの名無しさん
20/01/13 13:41:07.13 DXn4EK/n.net
Python学びたいんだけどどっから手を付けていいかわからん。
取り敢えず、クジラ本 「実践力を身につける Pythonの教科書」(4839960240)は買ってきた。
200:デフォルトの名無しさん
20/01/13 13:44:12.30 V22NtS8V.net
>>197
できました。
ありがとうございます。
m(._.)m
201:デフォルトの名無しさん
20/01/13 14:08:01.51 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:デフォルトの名無しさん
20/01/13 14:16:44.85 6kghygIo.net
>>201
「WebSite_List」って名前のファイルが参照場所にない。
探せ。
あと拡張子とかついちゃってて名前がかわってないかもチェック。
203:デフォルトの名無しさん
20/01/13 15:42:49.08 V22NtS8V.net
2Dカードゲームでユーザの行動特性を調査する
研究用アプリを開発しようと思ってます
開発環境をPygameにするか、Unityにするかで悩み中
Unityのほうが色々ゲーム用の機能揃ってて見栄えの良いUI作れそうなんだけど、
ユーザの行動データを数値解析したり、将来的には機械学習も取り入れようかと思ってるので、
その点ではPythonのほうが親和性高そう
どちらが、おすすめとかありますか?
204:デフォルトの名無しさん
20/01/13 15:43:53.12 V22NtS8V.net
ちなみにUnity、c#のほうが少しは得意
Pythonは最近sklearnとか使い始めたくらいの超初心者です
205:デフォルトの名無しさん
20/01/13 15:51:01.10 tF3chcAw.net
それは
※ただし、選択できるプログラミング言語は一つだけとする
というような縛りプレイルールが暗黙的に存在すると考えていいのかしら?
でなかったら俺はゲームをUntiyで書いて機械学習をPythonでやるかな
206:デフォルトの名無しさん
20/01/13 15:52:19.18 ghAse/mn.net
親和性って書いてるだろ
207:デフォルトの名無しさん
20/01/13 15:54:55.78 tF3chcAw.net
だから、親和性を最優先にするならそれぞれ得意分野に使うのが最善に決まってるだろw
はぁーガイジは人間に進化するまでママと遊んでてくれないかね
208:デフォルトの名無しさん
20/01/13 15:58:12.59 ghAse/mn.net
それ親和性優先してねーじゃん
209:デフォルトの名無しさん
20/01/13 16:08:32.64 GhUCXbF0.net
>>208
何と何の親和性について語ってるの?
210:デフォルトの名無しさん
20/01/13 16:10:23.44 ghAse/mn.net
ゲームエンジンと機械学習エンジンの接続
211:デフォルトの名無しさん
20/01/13 17:01:18.46 IO5oYjrW.net
>>202
ありがとうございます。自分で見る限りは異常ないと思うのですが・・・
IDLEでRunModuleできるのにコマンドプロンプトでエラーがでるってことありますか?
212:デフォルトの名無しさん
20/01/13 17:03:03.66 6kghygIo.net
>>211
コマンドプロンプトのカレントディレクトリがIDLEのカレントディレクトリと違ってるんだろ
213:デフォルトの名無しさん
20/01/13 17:15:24.55 nfiKoGl1.net
>>203
それ前も聞いてたけど公開して広くデータを取得する可能性考えたらJavaScript一択だと思うぞ
それにカードゲームというのがいわゆるソシャゲ系で
アクションや派手なエフェクトを多用するやつならともかく
トランプ系の動きの少ないやつならHTML/CSS使ったほうがはるかに簡単
研究室にテスター呼んでやってもらうだけなら
自分が作りやすさだけ考えればいいんだろうけど
その場合でもデータ連携で十分なんだから
得意分野の違う言語を無理やり一つにする意味あんまりない
214:デフォルトの名無しさん
20/01/13 17:58:01.77 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:デフォルトの名無しさん
20/01/13 18:01:34.92 V22NtS8V.net
>>213
ごめんなさい
今やってることの次の研究なので、定期的に頭の中に湧いてくるみたいです。
Unityで行こうと思ってたんだけど、Pythonで機械学習の初歩も学び始めたら、
Pythonでやったほうがいいのかまた悩みはじめました
前は
Unityカードゲーム
↓
データCSVで吐き出し
↓
Pythonで解析
と考えていたけど、カードゲーム中にもデータを機械学習させて、カードゲームの設定をいじるとかしたくなってきました。
そうするとPygameでやったほうがいいのかなと思うんだけど、Pygameの評判があまり良くないようなので、グルグル思案中・・・。
216:180
20/01/13 19:27:28.23 wBE7Qmaa.net
180ですが、教えてもらった相関サブクエリによるselectのやり方で
20万レコード30分くらいかかってたのが2分くらいまで短縮できました。
助かりました。
select後、sqlに保存は依然としてfor文ですが、それも込みで2分です。
保存部分もまとめて、
update table t1 set (select avg(score) …
というやり方ができないかと思って試しましたが、うまくできませんでした。
たぶん、最初にコメントされた方はそこもわかった上で
「少なくともselect文は」と言われたのでしょう。
ウインドウ関数、コンポジットインデックスも教えてくださりありがとうございます。
また試してみます。
217:デフォルトの名無しさん
20/01/13 19:42:53.29 Yl8Am7cI.net
>>216
出来ると思うんだが、内容がすでにPythonから離れているので
データベース板のSQL質疑応答スレで聞いてみると良いかも
218:180
20/01/13 20:25:11.89 wBE7Qmaa.net
>217
たしかに!
意識できていなかったのですが、ちょっとスレ違いでした。すみません。
みなさんクエリがなんとかとか言って争ってる?ので
5ちゃんねるは教えてくれる人々がいつもなんか争ってるなぁとw
219:デフォルトの名無しさん
20/01/13 20:49:48.38 6kghygIo.net
>>218
DBへのクエリの出し方はジッサイトテモダイジだ。
おなじことをしたいときでも
書き順によって
30分かかったり
2分くらいで終わったりだ。
イイネ?
220:デフォルトの名無しさん
20/01/13 21:20:28.09 nfiKoGl1.net
>>215
↓実装方法を選択する一般的な思考プロセスを経てないので目移りするんじゃないのかな
1. 自分が求める機能/非機能要求を整理する
2. 評価軸を決める
3. 実装方法の選択肢を考えられる限り出す
4. 選択肢のPros/Consを把握する
5. 評価軸とPros/Consからトレードオフを見極めて実装方法を選択する
UnityとかPyGameとか特定のソリューション名で考えずに
もう少し抽象度あげて選択肢を考えたほうがいいと思う
Pythonで全部やる、C#で全部やる、Python+C#のハイブリッドと大枠の選択肢があって
ハイブリッドの場合はファイル連携、DB連携、プロセス連携、API連携といろんなレベルがある
どれがいいかは上に書いた1や2が整理されてないと選びようがない
221:デフォルトの名無しさん
20/01/13 21:25:54.08 nwry0R0l.net
大袈裟だな。
222:デフォルトの名無しさん
20/01/13 21:52:26.47 FBCsPnZa.net
北海道のグラサンスーパーハゲザーはここにはこないのー?
223:デフォルトの名無しさん
20/01/13 22:10:39.12 P1+rByUv.net
>>211
WebSite_Listの読み込みやってるあたりで外部ファイル参照してない?
ファイル読み込みしてたら、ファイル名をフルパスにするか、 import osして
os.path.dirname(os.path.abspath(__file__)) + '/'+filenameにしてみたら(実行ファイルと同ディレクトリの場合)?
224:デフォルトの名無しさん
20/01/13 22:12:13.05 BvowWoiX.net
pathlibつかえ
225:デフォルトの名無しさん
20/01/14 10:02:51.83 RNgj0nXq.net
>>198 何言ってんだ、あるぞ
226:デフォルトの名無しさん
20/01/14 10:44:24.13 sNEc9p7V.net
>>215
Pythonが機械学習部分を担当し、Unityがゲーム部分を担当し、
両者が通信を行えば言ってるようなことはできる。
(そして正直それがおすすめ)
出来ないうちに色々こんな機能も欲しいって言って考えていくと、要求ばかり大きくなって
結局何も完成しないから、まずは最小限使えるものを作ってしまうべき。
最悪のケースでも、書いたコードは無駄となるかもしれないけど、
設計手法や要素技術は身に着くのだから別のプラットフォームに移植するのに始めのときより時間がかからなくなる。
227:デフォルトの名無しさん
20/01/14 13:35:18.55 Cb2SImdL.net
「くだすれ」ってなんですか?
228:デフォルトの名無しさん
20/01/14 13:59:52.47 6KmUa3mX.net
ここが起源っぽい
URLリンク(www.log soku.com)
229:デフォルトの名無しさん
20/01/14 14:01:21.23 n2n8mDAV.net
pythonでデータベース使うならどれが簡単?
230:デフォルトの名無しさん
20/01/14 14:10:20.88 Sh3SY+TQ.net
sqlite3
231:デフォルトの名無しさん
20/01/14 14:10:23.62 Cb2SImdL.net
>>228
なんでそんな略称にしようと思ったんだろうな
232:デフォルトの名無しさん
20/01/14 14:11:37.48 Sh3SY+TQ.net
くそスレ
くそが出そう半分出かかってるがトイレ遠くて困ってる
くだらないスレ
233:デフォルトの名無しさん
20/01/14 14:14:12.10 /8RfG7cV.net
>>229
お前が何がしたいのか次第だろう
Webアプリ作ろうとしてるんだったらいくらSQLiteの扱いが簡単とはいえ選択肢に入らないし、
データ分析なんかで大きなデータセットを扱うんだったらBigQueryになるかもしれない
234:デフォルトの名無しさん
20/01/14 14:16:57.58 NngjCG95.net
ポスグレをサイコPGで
235:デフォルトの名無しさん
20/01/14 14:18:33.49 PBX58Pvh.net
memcached
236:デフォルトの名無しさん
20/01/14 15:32:37.37 ryFU8X4N.net
>>229 sqlalchemy
237:デフォルトの名無しさん
20/01/14 20:03:55.62 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:デフォルトの名無しさん
20/01/14 20:12:28.50 V5Q3d6Dh.net
自決しました。aggを使うのですね。
239:デフォルトの名無しさん
20/01/14 20:19:00.39 3etKzhuc.net
自決したのか!!!
240:デフォルトの名無しさん
20/01/14 20:20:27.07 eL1p+DpS.net
>>238
命は大切にしろよ
241:デフォルトの名無しさん
20/01/14 21:48:30 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:デフォルトの名無しさん
20/01/14 22:06:55.30 4urAtQVN.net
numpyが楽
import numpy as np
m=np.array(m)
p=np.array(p)
m[:,3]=p
243:デフォルトの名無しさん
20/01/14 22:19:54 Cb2SImdL.net
rubyでは
244:241
20/01/14 22:29:22 sWWbL+aD.net
>>242
ありがとうございます
p=[5,6,7]でmの縦より一個少なくて
ブロードキャストエラーって出てしまいます
これはどうしたらいいですか?
245:デフォルトの名無しさん
20/01/14 23:52:13.22 4urAtQVN.net
>>244
縦方向の範囲も決める
m[0:3,3]=p か m[1:4,3]=p
246:デフォルトの名無しさん
20/01/15 03:04:35 TeTRS4cT.net
sklearnで機械学習のモデルに使えるクラスの一覧取得したいんですけどできますか?