くだすれPython(超初 ..
2:デフォルトの名無しさん
20/03/07 10:37:22 RdpK90R9.net
>前スレ996 >>1
超乙!
前スレ972はウルトラ無能
3:デフォルトの名無しさん
20/03/07 15:35:33 wIEefnRe.net
粘着w
4:デフォルトの名無しさん
20/03/07 19:01:00 RZgTMQsN.net
test
5:デフォルトの名無しさん
20/03/07 20:09:44 b5CwloCp.net
・ ,,..--―-、
/, -----、.ヽ, / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| i_,,,,_ __゙l | / 世界、糞スレ発見!
,!、i'゙-‐-: '-、|/ | >>1はボッシュート!
/'') ..., '‐-‐、.j / __________
/ ,‐!::...`'''''''`ノ  ̄ ̄
_,,,l ;! ::|ヽ、二 イ
, -‐'゙゛ i::.. | .ヽ/;ヽj!`‐-、_
l ノ::. .:|、 .ヽ,:ヽ| <゛~ヽ、
,:''`` ''"゙.|;;:‐''゙|.ヽ、 ヽ;::| / .|゙l
,: ヽ::il;;! ヽ、ヽ| / | :|
i o゚ :`;''゙ ヽ| / | .|
i ..:::::,:::'::::: . |゚ |,,;:->、
`.、__;;/:::::::::: : | !''" |
i ::.:::: : | | .|
⌒ ⌒ ⌒ シュルルル
__⌒ ⌒ ⌒__
/::::::::::Λ_Λ::::::::::::::::::/
/::::::::::(∩;´Д`)∩:::::::/ チャラッチャラッチャーン
/::::::::::::( >>1 /:::::/
6:デフォルトの名無しさん
20/03/07 20:45:15 Sj9rVMKL.net
スマートpythonプログラミングの、著者である モミジアメ先生の新刊キター
TCP IP本
python関係ないけど
Kindle unlimited入ってる奴は読んどけよ
スマートpythonプログラミングは2についてけっこう尺取られてちょっと古くなった感はあるけど良書
7:デフォルトの名無しさん
20/03/07 20:51:01 Sj9rVMKL.net
もみじあめ先生の新作が読めるのはアマゾンだけ!
8:デフォルトの名無しさん
20/03/09 21:31:08 lMlUpD8p.net
めっちゃ長い文をfor文使って書いた場合と使わずにベタ書きで書いた場合でどれくらい速度比出ますか?
9:デフォルトの名無しさん
20/03/09 21:52:11 aVP5r6mu.net
>>8
自分で計測しろよ
とりあえず%timeitで十分だろ
10:デフォルトの名無しさん
20/03/09 22:14:29 ajCpPJPb.net
今どきFor文のベタ書きとか考えなくていい
適切なライブラリを使う方がよほど早くなる
とくにライブラリが速いCで書かれてる場合
11:デフォルトの名無しさん
20/03/09 22:36:25 lMlUpD8p.net
>>9
timeitの使い方がよくわからないんですよね…
%timeitっていうのは、Jupyterを使った場合の処理ですか?
>>10
そうなんですか?
とにかく今はめっちゃ遅いので何とかしたいです
リスト内包表記を試したり、ネットで拾える情報は結構試したんですが速くならないです
12:デフォルトの名無しさん
20/03/09 22:44:56 ajCpPJPb.net
>>11
先に疑うべきことはたくさんある
無駄なループを作ってないかとか
機械学習とか重い処理をする場合
ハードを増設する必要があるとか
13:デフォルトの名無しさん
20/03/09 22:48:57 QKPDJ9w3.net
O(N^2)の処理 をO(NlogN)にするとか
URLリンク(qiita.com)
14:デフォルトの名無しさん
20/03/10 00:17:47 eonxFH18.net
>>11
%timeitはIPythonの簡易マイクロベンチマーク用のコマンド
URLリンク(ipython.readthedocs.io)
標準のtimeitモジュールを直接使ってもいいけど少し面倒
URLリンク(docs.python.org)
15:デフォルトの名無しさん
20/03/10 00:27:33 bus7JDt5.net
ケースバイケースなんで
その質問では解決する前にお前の寿命が来るかプログラムに飽きる
16:デフォルトの名無しさん
20/03/10 02:05:18.11 nFDPxvbU.net
>>11
Pythonを使ってる時点でループのアンロールとかほとんど意味がないと思う
オブジェクトやライブラリをあれこれしてないようなコードなら、Cythonにするとかで100倍ぐらい速くなる場合はあるけれど、
Pythonオブジェクト、ライブラリを結局は呼んでるのだったらそこが律速で速くならないかも
17:デフォルトの名無しさん
20/03/10 04:10:20 /bE8vLVb.net
線形探索してるとか?
例えば、百万件の中に無いデータを線形探索すると、すべてを見るまで分からないので、百万回。
O(N)
一方、検索インデックス・辞書を使うと、百万件の中に無いデータが、瞬時に分かる。
O(1)
SQL では、B+tree で2分探索。O(logN)
2 ^ 10 = 千
2 ^ 20 = 百万
つまり、20回で分かる
18:デフォルトの名無しさん
20/03/10 04:16:12 3BlP5Izm.net
言語やアルゴリズム等で短縮できる
計算時間の方が圧倒的に大きいから
Forのベタ書きは考えなくていいぞ
19:デフォルトの名無しさん
20/03/10 09:56:51.57 QtRN/SQw.net
とはいえPythonはC, Java, C#あたりの速い言語グループと比較して2桁遅いので、
アルゴリズムの改善をいくら頑張っても速い言語の何も考えてないバカループにすら勝てないケースが多い
コアでない箇所でアルゴリズムを工夫することを頻繁に迫られるようなら、Pythonを使うこと自体を考え直したほうがいいかも
20:デフォルトの名無しさん
20/03/10 13:11:25.65 jhi4WBaR.net
競技プログラミングみるとc++使ってる人多い
c++と比べたらjavaは遅い部類
21:デフォルトの名無しさん
20/03/10 18:07:19 OITv6FOp.net
機械語じゃないから当然
22:デフォルトの名無しさん
20/03/10 19:58:08.31 3+CC2Qsy.net
C言語ゆらいの怪しげなマクロを使えるから
23:デフォルトの名無しさん
20/03/10 19:59:11.58 RoiJALPR.net
競技プログラミングってプログラミングの速度を競うのかと思ってたけど、プログラムの速度か
24:デフォルトの名無しさん
20/03/10 20:01:47.21 yxLEcfJ6.net
>>23
両方
問題ごとにプログラムの実行時間に制限がある
その時間に収まるように他の人より速くプログラム作れたらポイント高くなる
25:デフォルトの名無しさん
20/03/14 10:37:29 WJJSMSr5.net
リスト内表記について質問なんですが
こういう代入はリスト内表記はあきらめて普通のforにしないといけないんでしょうか?
それともほかにリスト内表記する方法があったら教えてください
v=[1,2,3]
[c=c+1 for c in v if c==1]
26:デフォルトの名無しさん
20/03/14 11:11:58 +zKDV3tO.net
ないだろ。
副作用欲しいなら、for文か無理やり関数でやるしかない。
def func(x): global y; y = x + 1; return y
[func(c) for c in v if c==1]
27:デフォルトの名無しさん
20/03/14 11:27:00.67 WJJSMSr5.net
>>26
ありがとうございます
無いんですね
副作用は怖いので普通に書き下しします
28:デフォルトの名無しさん
20/03/14 11:29:27.43 cJqY8aA1.net
v= [1, 2, 3]
v = [c+1 if c == 1 else c for c in v]
思っていたのと違うかもしれんが
29:デフォルトの名無しさん
20/03/14 11:32:29.19 eph4O7WW.net
filterを繋げて多段にすりゃいいんだよ
30:デフォルトの名無しさん
20/03/14 12:33:03 XTUayws2.net
numpyとかpandas使えばもう少し気持ち良い描き方がある
31:デフォルトの名無しさん
20/03/14 17:09:46.58 NeU9D2+b.net
そもそもc=c+1の部分が内包表記の表現として書けない
32:デフォルトの名無しさん
20/03/14 17:59:18.44 ILPzjwAA.net
>>27
>副作用は怖いので普通に書き下しします
プログラミングにおける副作用の意味をググったほうがいいかも
リスト内包表記に書けるのはexpressionのみ
代入はstatementなのでエラーになる (3.8で導入されたassignment expression(:=)は可)
副作用のための処理は内包表記ではなくfor文を使うのが原則
無理やりやればできなくもないがデメリットしかない
v = [1,2,3]
[globals()['v'].__setitem__(i, x+1) for i, x in enumerate(v) if x == 1]
print(v) #=> [2,2,3]
33:デフォルトの名無しさん
20/03/14 19:21:24.85 jpfF5Ox9.net
>>25
これってもともとのやりたい事は
特定の値の個数を求めること?
34:デフォルトの名無しさん
20/03/14 22:22:03.48 fCAYl0fu.net
pip install A で実行できるようになるコマンドA
pip install B で実行できるようになるコマンドB
があって、パッケージAの依存パッケージがprogressbar、パッケージBがprogressbar2のため(どちらもimport progressbarなので)progressbar2をimportしたい方のパッケージBがprogressbarをインポートしてしまってコマンドBがエラーになってしまいます
こういう場合はコマンドA用とコマンドB用で仮想環境を分けて使うものなのでしょうか?
いちいちコマンドを実行するごとに仮想環境を切り替えるのは面倒な気がするのですが、例えば、コマンドA用とB用それぞれにバッチファイル等を作って、仮想環境の切り替えとコマンドの実行を一つのコマンドで実行できるようにしたりするのが一般的ですか?
オススメのやり方があれば教えてください
35:デフォルトの名無しさん
20/03/14 22:59:23.51 c0o9KEoN.net
>>34
おらはバッチ切替派だが
その前におまえ1嫁や
Windowsだけがせかいのすべてだとおもうなよ
36:デフォルトの名無しさん
20/03/14 23:26:36 m6CMFdp/.net
シェアが5%以下が何言っているんだ?
37:デフォルトの名無しさん
20/03/15 00:13:50 DfzvBJR/.net
そのシェアってAtom使った奴も入っているの?
38:デフォルトの名無しさん
20/03/15 00:52:51.57 DV1gyHVd.net
macでtkinterがimportエラーでて解決できなくて泣きそうやわ
ウェブで解決策が色々あるがどれもうまくいかへん
tkinter以外のGUIパッケージでフォルダダイアログだけ呼び出せるのある?
wxはウィンドウ用のクラス作らんとあかんしQtやsimpleはtkinter依存やし
Eelめっちゃええやん!からのpythonのGUI環境はマジクソ!←いまここ
39:デフォルトの名無しさん
20/03/15 01:01:35 S82Gach3.net
>>37
Atomって何だ?おもちゃか?
40:デフォルトの名無しさん
20/03/15 01:34:08 ek1F76QN.net
MacならMS製なのがネックで未だにVSCodeに移行してない根強いAtom使いも一部いるかもしれないが、
WindowsならもうAtom使ってる奴なんてほぼいないんじゃね
41:デフォルトの名無しさん
20/03/15 01:42:21 DV1gyHVd.net
いや逆やろ
WindowsはVSという最強かつ世界最高のデバッガを搭載したIDEがあるからわざわざVSCode使う必要性がない
逆にMacやLinuxはまともなモダンエディタがSublimeやAtomくらいしかないからVSCodeが圧倒的
今時SublimeやAtom使ってるのなんて意固地で勘違いしたやつくらいやな
42:デフォルトの名無しさん
20/03/15 02:37:23.76 S82Gach3.net
あん?このAtomってエディタの話だったのか?
OSのシェアがどうたらの文脈だからプロセッサの話だと思った
43:デフォルトの名無しさん
20/03/15 03:48:08 7lggs81n.net
素人はともかくプロ開発者におけるOSシェアは
Mac+Linux > Windows
デスクトップOSシェア(StackOverflow Developer Survey 2019)
プロ開発者: Windows 45%, Mac 30%, Linux 25%
素人開発者: Windows 58%, Mac 15%, Linux 27%
開発環境のOSシェア(Python Developer Survey 2018:複数回答可)
Linux 69%, Windows 47%, MacOS 32%, BSD 1%
44:デフォルトの名無しさん
20/03/15 04:02:17 QjO8odR4.net
LinuxやMacで開発している現場なんて見たことない
開発用PCはWindowsがデフォでしょ
45:デフォルトの名無しさん
20/03/15 04:34:34 gNXlAxhx.net
俺は受託オンリーやけど元請けの素人どもはWindowsやけど実際に開発してるチームメンバーは全員Macやなー
ウェブやアプリの場合やけど.NET環境の業務システムはVS必須やからWindowsやけどそらそうよ
46:デフォルトの名無しさん
20/03/15 10:14:23 b9Qsc7j/.net
Ruby でも、Windows 版Docker ではバグるから、仮想OS でLinux で開発する。
本番環境に一番近いのが、Linux
今までは、Windowsでは、MSYS2/MINGW だが、日本語でバグるから皆、Mac を使っていた
ようやく最近、Windows 10, WSL, Linux で、VSCode の拡張機能、Remote WSLが出たから、
Windows 10, WSL, Linux でも出来るようになった。
WSLでは、日本語でもバグらない
これで次第に、Macから、Windowsへ戻ってくるはず。
でも、完全な互換性は、直接Linuxを使う
47:デフォルトの名無しさん
20/03/15 10:16:57 ddHsS2vy.net
普通にmac少ないやんけ
48:デフォルトの名無しさん
20/03/15 10:31:59 35ngHCek.net
サーバーに合わせてLinuxにするのは分かるがMacはマジで意味わからん。副業でiOSアプリ作るからか?
49:46
20/03/15 11:21:36 b9Qsc7j/.net
Ruby では、Windows の開発者は、WSL が出るまでは、いなかった。
Windows, MSYS2/MINGW だと、日本語でバグるから皆、Mac を使っていた
さらに、Windows版Docker でもバグるから、
Windowsでは、仮想OS でLinux しか出来なかった
50:デフォルトの名無しさん
20/03/15 11:29:04 g709JiKq.net
macはtcl/tkをそのまま使えば早いんじゃね?
51:デフォルトの名無しさん
20/03/15 12:26:18.38 0qHq2F5s.net
Rubyくんお友達居なそう…
52:デフォルトの名無しさん
20/03/15 12:34:55.72 DfzvBJR/.net
Windows使うと文字コードで苦労する
苦労してからまたMacに戻ってくる
53:デフォルトの名無しさん
20/03/15 13:40:06 f0kPntOU.net
お友達本意の開発なのか。
54:デフォルトの名無しさん
20/03/15 14:45:35 tvz/ROTF.net
Docker のコンテナ名がコンフリクトする時はどうすればいいですか?
$docker container ps
しても動いてるコンテナないんですけど
55:デフォルトの名無しさん
20/03/15 17:19:22 U43dmARa.net
やっぱり具体的に作りたいものがないのに0から勉強するのは脳が拒否反応を起こすなぁ
VBAをやってる時は実利に直結するからあれこれやるのも苦ではなかったが……
56:デフォルトの名無しさん
20/03/15 17:39:01 WBXETDOG.net
>>48
>>50な理由とか
2系までだったころは、Macにデフォルトで入ってるからとか
デフォルトフォントがMacのほうがきれいだとか
予算余ってるからとか
カコイイからとか
かこいいからとか
本体価格が高級だからとか
そんな理由
あとおまけで52も言ってる文字コードの都合
57:デフォルトの名無しさん
20/03/15 17:39:28 WBXETDOG.net
>>55
学生時代勉強不得手だったんけ
58:デフォルトの名無しさん
20/03/15 17:54:33 gNXlAxhx.net
>>55
自宅プログラミングしない奴の言い訳まんまで草www
そもそもプログラミング好きじゃない奴がプログラマーしてることが数ある不幸なプロジェクトの原因なんよね
学習も研鑽もしないから同じ環境でしか開発できないVBAおじを量産してしまう
俺のように楽に結果が得られるならなんでもいいからもっとええのないんか?と楽しみつつ学習してるといつの間にかC++、C#からTypeScript、Pythonまでフロントもバックエンドもなんでもござれのフルスタックの完成なんよ
59:34
20/03/15 18:09:49.98 ae7hHOBm.net
>>35
ありがとう&ごめんなさい
OS関係ない話かと思って...てへぺろ
60:デフォルトの名無しさん
20/03/15 20:07:39.50 1/DFOu+E.net
>>46
>本番環境に一番近いのが、Linux
そうそう
サーバが圧倒的にLinuxだからね
でもWindows10のことも書いてて
わりと良いレスだと思う
61:デフォルトの名無しさん
20/03/15 20:09:09.03 1/DFOu+E.net
>>55
>具体的に作りたいもの
実感としてそれは大事だね!
今のPythonブームで言えばAIや機械学習が
したいから学ぶっていう人が一番多いかな?
62:デフォルトの名無しさん
20/03/15 22:20:35 6KRsgpGp.net
スクレイピングとエロ画像の自動収集くらいしかやってね―わ
それが一番プライベートの時間の節約に役立つしな
63:デフォルトの名無しさん
20/03/16 01:42:32 +IrHqAFl.net
楽に結果を得る方法を求めて他人より何倍も苦労する訳ですね
64:デフォルトの名無しさん
20/03/16 06:17:37.04 IojLJcYy.net
苦労なんて発想しかできない脳みそだから低レベルなままなんだって判断できない時点で終わってるってわかんね
好きなら努力が努力じゃないんだからそりゃ差が生まれるに決まってますわ
65:デフォルトの名無しさん
20/03/16 08:56:23 I/DM6IO+.net
?
好きでも努力は努力だぞ?
好きこそものの上手なれ とはいうが。
66:デフォルトの名無しさん
20/03/16 12:57:20 L7QaMGTS.net
苦労というよりは、単純作業を繰り返したくないから単純作業と自動化で同じくらいの時間がかかるなら自動化していくうちに勝手に覚えるって感じだな
まあ自動化しやすいものを偶々日常的に扱っていることが多いというのが有利に働いていると思うが
67:デフォルトの名無しさん
20/03/16 14:23:07 90R/wZVM.net
質問です
a=[
[1,2,3],
[4,5,6],
[7,8,9],
[10,11,12]]
と
b=[100,200,300]
があるとして(中身の数字は適当です)
a[0,3]=b[0]
a[1,3]=b[1]
a[2,3]=b[2]
というように縦に一部だけ変数を入力するのに
カッコいい方法を教えてください
68:デフォルトの名無しさん
20/03/16 14:44:13.21 IaZ60aJs.net
>>67
a[0,3]=b[0]
TypeError: list indices must be integers or slices, not tuple
zip使え
69:デフォルトの名無しさん
20/03/16 15:11:20 90R/wZVM.net
>>68
間違えました、すいませんorz
a[0][3]ですorz
zip使います
ありがとうございます
70:デフォルトの名無しさん
20/03/16 15:24:43 05pyWuEB.net
>>69
>>> a=[
... [1,2,3],
... [4,5,6],
... [7,8,9],
... [10,11,12]]
>>> a[0][3]=100
IndexError: list assignment index out of range
71:デフォルトの名無しさん
20/03/16 15:30:10 vjCDcJeV.net
深いリストをフラットにするのは何?
[1, [2, 3], 4]
↓
[3, 4, 2, 1] # 結果の順番はどうでもいい
72:デフォルトの名無しさん
20/03/16 15:30:38 D64H19Ci.net
numpy使わないなら普通にfor文使うケース
縦(column wise)にデータを取り出したいだけならlist comprehension
zip(*list)はtransposeしたい場合に使う
#numpy
a = np.array(np.arange(1, 13)).reshape([4,3])
b = [100, 200, 300, 400]
a[:,2] = b
73:デフォルトの名無しさん
20/03/16 15:36:25 I/DM6IO+.net
>>71
その例だとまったく深くないんだがw
「リスト フラット Python」あたりでぐぐれ
ちな
「リストをフラットにする作業」を英語で「flatten」っていうっぽいので
日本語使った検索で気に入る結果が出ないなら
「flatten python」みたいにしてぐぐれ
74:デフォルトの名無しさん
20/03/16 15:39:19 I/DM6IO+.net
(追記)
unnestも、キーワードとして使えるのではないだろうか。
75:デフォルトの名無しさん
20/03/16 15:47:11 D64H19Ci.net
>>71
from more_itertools import collapse
list(collapse([1, [2, 3, [4, 5]], 6]))
#=> [1, 2, 3, 4, 5, 6]
76:デフォルトの名無しさん
20/03/16 18:22:58 3OE3knP8.net
>>71
a=[1, [2, [3]], 4]
b=[int(x.strip('[ ]')) for x in str(a).split(',')]
print(b)
77:デフォルトの名無しさん
20/03/16 20:21:48 I/DM6IO+.net
>>75
横レスだけど
こんな便利なもの(pip install more-itertools)あるのぬ!
78:デフォルトの名無しさん
20/03/16 21:03:18 IaZ60aJs.net
for n, m in zip(a, b): n[2] = m
79:デフォルトの名無しさん
20/03/16 21:37:30 c9Tv/g5u.net
>>67
import numpy as np
a=np.array(a)
b=np.array(b)
a[:,2]=b
80:デフォルトの名無しさん
20/03/17 11:03:03.09 h3A2d4brr
スレ失礼させていただきます
学生です。
ScratchというサイトでしかプログラミングをしたことがないのでそろそろPythonを勉強しようかと思いました。
Python勉強するための良いサイト、ソフト、勉強法を教えてください
ちなみにScratchはマスターしてます
scratch.mit.edu
81:デフォルトの名無しさん
20/03/17 11:04:35.95 h3A2d4brr
↑のサイトはscratchに飛べます
言い忘れていましたがMacです
82:デフォルトの名無しさん
20/03/17 23:41:42 Cz6mauRR.net
plt.subplot(1, 2, 1)
plt.title('test1 score')
plt.subplot(1, 2, 2)
plt.title('test2 score')
みたいにサブプロットのグラフ毎にタイトルをつけたあとに
サブプロット1,2共通のタイトルNameを最上段、真ん中に表示させたいんですが、
なにかいい方法無いでしょうか?
Name
test1 score test2 score
graph1 graph2
みたいな感じです。
83:デフォルトの名無しさん
20/03/17 23:42:43 Cz6mauRR.net
Name
test1 score test2 score
graph1 graph2
84:デフォルトの名無しさん
20/03/17 23:43:05 Cz6mauRR.net
>>83
みたいな感じです。
85:デフォルトの名無しさん
20/03/17 23:52:06 A6c/ap2m.net
ねぎ式? タンブラー@ohtsuka
パートナーさんとの面談で、同僚が「ぴとんも出来るの?
ぴとん」とか言っていたのでなんだそりゃと思っていたらPythonだった。
恥ずかしのでやめて欲しい。
86:デフォルトの名無しさん
20/03/18 00:33:44 Nf3sMBGq.net
>>82-84
上の方か前スレに、誰かが任意の場所に文字列入れる方法書いてくれてた
87:デフォルトの名無しさん
20/03/18 11:53:50.04 ita97idO.net
URLリンク(qiita.com)
88:デフォルトの名無しさん
20/03/18 11:54:23.20 ita97idO.net
plt.gcf().text()
89:デフォルトの名無しさん
20/03/18 11:55:55.25 ita97idO.net
matplotlibは直観的じゃないよね
URLリンク(python.atelierkobato.com)
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
1509日前に更新/22 KB
担当:undef