Slide 1

Slide 1 text

みんなのはんなりPythonの会 2019/12/06 ~環境構築 & コード作成~ @namao

Slide 2

Slide 2 text

みんなのはんなりPythonの会 2019/12/06 自己紹介  @namao  Python歴:2年弱 業務利用(データ分析)  興味のあるIT技術 (Python以外) Go, Linux(Debian),セキュリティなど  後輩などにPython指導する機会↗ connpass

Slide 3

Slide 3 text

みんなのはんなりPythonの会 2019/12/06 概要 私の指導経験  業務中での後輩指導  業務外での親友への指導(タダ!)

Slide 4

Slide 4 text

みんなのはんなりPythonの会 2019/12/06 概要 学習(つまずき)ポイント  環境構築 →AnacondaによるPython3.8環境構築  コードの書き方 →速いコード(pandas)作成 私の指導経験  業務中での後輩指導  業務外での親友への指導(タダ!)

Slide 5

Slide 5 text

みんなのはんなりPythonの会 2019/12/06

Slide 6

Slide 6 text

みんなのはんなりPythonの会 2019/12/06 コン パイ ル 不要 必要 イン ス トー ル元 Anaconda独自 Python公式 Anaconda vs pip https://www.anaconda.com/understanding-conda-and-pip/ コンパイル: テキストからバイナリに変換 (初心者には難) 青字:メリット

Slide 7

Slide 7 text

みんなのはんなりPythonの会 2019/12/06 コン パイ ル 不要 必要 イン ス トー ル元 Anaconda独自 Python公式 Anaconda vs pip https://www.anaconda.com/understanding-conda-and-pip/ 青字:メリット Windowsユーザーには、Anacondaがおすすめ!

Slide 8

Slide 8 text

みんなのはんなりPythonの会 2019/12/06 パッケージ情報を知る  コマンド: conda search (パッケージ名) –c (チャンネル名) *動作環境: cmd (windows) コンパイル情報 ・ ・ ・ Pythonのversion AnacondaのPython version対応状況を把握可

Slide 9

Slide 9 text

みんなのはんなりPythonの会 2019/12/06 仮想環境作成 仮想環境イメージ  コマンド: conda create -n (仮想環境名) python=(version番号) (パッケージ名) –c (チャンネル名) 実行例 *動作環境: cmd (windows)

Slide 10

Slide 10 text

みんなのはんなりPythonの会 2019/12/06 仮想環境作成 仮想環境イメージ  コマンド: conda create -n (仮想環境名) python=(version番号) (パッケージ名) –c (チャンネル名) 実行例 *動作環境: cmd (windows) 2コマンドで 環境構築可能

Slide 11

Slide 11 text

みんなのはんなりPythonの会 2019/12/06 Jupyter notebook エラー解消 (windows) asyncio.pyに上記コードを追加

Slide 12

Slide 12 text

みんなのはんなりPythonの会 2019/12/06 Python以外のパッケージ1 (R) https://anaconda.org/conda-forge/r-essentials Jupyter上でのR

Slide 13

Slide 13 text

みんなのはんなりPythonの会 2019/12/06 Python以外のパッケージ2 (git, git-bash) https://anaconda.org/anaconda/git Windowsでの bash(Linux)環境候補として Git-bashもおすすめ https://anaconda.org/conda-forge/git-bash git git-bash

Slide 14

Slide 14 text

みんなのはんなりPythonの会 2019/12/06

Slide 15

Slide 15 text

みんなのはんなりPythonの会 2019/12/06 少休止(人もコードも?) 世間では・・・ 生産性向上 (スピード)

Slide 16

Slide 16 text

みんなのはんなりPythonの会 2019/12/06 少休止(人もコードも?) 世間では・・・ 生産性向上 (スピード) コードも同じ!

Slide 17

Slide 17 text

みんなのはんなりPythonの会 2019/12/06 速いコードの書き方(一般論)  Python(スクリプト言語)の速さはコード行数に比例  forループを減らすことが基本 N=10**4 a=[] for i in range(N): if i%3==0: a.append(i) N=10**4 a=[i for i in range(N) if i%3==0] ☓ ◯

Slide 18

Slide 18 text

みんなのはんなりPythonの会 2019/12/06 コードのスピード測定 (jupyter noebook) Jupyterでは%%timeitというマジックコマンドを使うのが簡単! https://ipython.readthedocs.io/en/stable/interactive/magics.html#cell-magics ☓ ◯

Slide 19

Slide 19 text

みんなのはんなりPythonの会 2019/12/06 処理のイメージ図 コードの速度比較(例1:ファイル結合) ☓ 10000 生徒一人の3教科の点数

Slide 20

Slide 20 text

みんなのはんなりPythonの会 2019/12/06 処理のイメージ図 コードの速度比較(例1:ファイル結合) ① ②

Slide 21

Slide 21 text

みんなのはんなりPythonの会 2019/12/06 処理のイメージ図 コードの速度比較(例1:ファイル結合) ① ②

Slide 22

Slide 22 text

みんなのはんなりPythonの会 2019/12/06 コードの速度比較(例2:行毎の合計) 10000人の学生それぞれの 3教科の合計点を算出 10000 Eng, Math, Japan sum 処理のイメージ図

Slide 23

Slide 23 text

みんなのはんなりPythonの会 2019/12/06 コード例 (10000人の3教科の合計) ① data.apply(sum,axis=1) ② data['Eng']+data['Math']+data['Japan’] ③ data.eval('Eng+Math+Japan’) ④ data.sum(axis=1) ⑤ pd.Series(data.values.sum(axis=1)) 10000 Eng, Math, Japan sum 処理のイメージ図 コードの速度比較(例2:行毎の合計)

Slide 24

Slide 24 text

みんなのはんなりPythonの会 2019/12/06 コード例 (10000人の3教科の合計) ① data.apply(sum,axis=1) ② data['Eng']+data['Math']+data['Japan’] ③ data.eval('Eng+Math+Japan’) ④ data.sum(axis=1) ⑤ pd.Series(data.values.sum(axis=1)) 速度結果 ①1160 ms,②2.58 ms,③9.96 ms,④2.05 ms,⑤1.14 ms 10000 Eng, Math, Japan sum 処理のイメージ図 コードの速度比較(例2:行毎の合計)

Slide 25

Slide 25 text

みんなのはんなりPythonの会 2019/12/06 本日のまとめ 環境構築  Anaconda活用方法(python3.8環境をコマンドで作成)  Python以外のパッケージ(例: R, git)もインストール可 コードの書き方  速さを意識したコードを書くことは重要  スピード測定には、%%timeitが便利 (jupyter notebook)

Slide 26

Slide 26 text

みんなのはんなりPythonの会 2019/12/06

Slide 27

Slide 27 text

みんなのはんなりPythonの会 2019/12/06 まとめ  アイデアを確認します。  上位の候補に投票して集約します。  要件と制限を確認します。  上位 5 から 10 のアイデアにリストの内容を調整します。