`np` とか `tf` とか `pd` とか `plt` とか === <!-- .element: style="font-size: 300%" --> 2019/06/01 Python東海 第39回勉強会 antimon2(後藤 俊介) Note: ごくごく Lite な Talk スライドですっ ---- ## お品書き + ~~お前誰よ?~~ 2つめなので略 + ~~Juliaの紹介~~ しません + `np` とか `tf` とか `pd` とか `plt` とか --- # `np` ---- ```python import numpy as np ``` <!-- .element: style="font-size: 150%" --> Note: `numpy` を `import` するときによく別名で `np` ってしますよねっ ---- ```python import numpy as np np.linalg.norm( np.random.rand(2).astype( np.float32)) ``` <!-- .element: style="font-size: 100%" --> Note: こんな感じによく書きますよねっ --- # `tf` ---- ```python import tensorflow as tf ``` <!-- .element: style="font-size: 150%" --> Note: `tensorflow` も `import` するときによく別名で `tf` ってしますよねっ ---- ```python import tensorflow as tf input_X = tf.placeholder(tf.float32, [None, M]) sess = tf.Session() ``` Note: こんな感じによく書きますよねっ --- # `pd` ---- ```python import pandas as pd ``` <!-- .element: style="font-size: 150%" --> Note: `pandas` を `import` するときによく別名で `pd` ってしますよねっ ---- ```python import pandas as pd pd.read_csv('/path/to/some_data.csv') ``` Note: こんな感じによく書きますよねっ --- # `plt` ---- ```python import matplotlib.pyplot as plt ``` <!-- .element: style="font-size: 100%" --> Note: `matplotlib.pyplot` を `import` するときによく別名で `plt` ってしますよねっ ---- ```python import matplotlib.pyplot as plt plt.plot(X, Y, label="hoge") ``` Note: こんな感じによく書きますよねっ --- # なんで? ---- ## なんで略語で <span>`import` するの?<!-- .element: style="white-space: nowrap"--></span> <!-- .element: style="font-size: 250%" --> ---- ![Pandas Tutorial より…](https://i.imgur.com/M6EWzPe.png) 《出展: [http://pandas.pydata.org/pandas-docs/stable/getting_started/10min.html](http://pandas.pydata.org/pandas-docs/stable/getting_started/10min.html) 》 <!-- .element: style="font-size:30%" --> ---- ![Cusomarily](https://i.imgur.com/LrNY3ns.png) ---- ## なんで <span>慣習化したの?<!-- .element: style="white-space: nowrap"--></span> <!-- .element: style="font-size: 250%" --> --- ![ボーッと生きてんじゃねーよ!](https://i.imgur.com/FTDAkXo.png) --- # PEP 221 ---- ## PEP 221 -\- Import As | … | … | | ------ | ----------- | |Author|thomas at python.org (Thomas Wouters)| |Status|Final| |Type|Standards Track| |Created|15-Aug-2000| |Python-Version|2.0| <!-- .element: style="font-size:90%" --> ---- [![PEP 221 -- Rationale](https://i.imgur.com/J4xb11I.png)](https://www.python.org/dev/peps/pep-0221/) Note: つまり「名前の衝突を防ぐため」が元々の目的? ---- [![PEP 221 -- Rationale (2)](https://i.imgur.com/Zeyq0yM.png)](https://www.python.org/dev/peps/pep-0221/) Note: キーワードじゃなければ名前に制限はない、からってその例… ---- [![1990年代後半〜 - 機械学習とPython - HackMD](https://i.imgur.com/NcJkoHg.jpg)](https://hackmd.io/p/HyIIR5bXm#/4/8) 《[機械学習とPython](https://hackmd.io/p/HyIIR5bXm) (Python東海 第36回勉強会 発表資料)より抜粋》 <!-- .element: style="font-size:30%" --> ---- + `import 〜 as 〜` が導入されたのが約20年前 + matplotlib/NumPy 等がその直後に公開 (Pandas は2011年) Note: ちなみにTensorFlowは2015年だからちょっと後 ---- ## もうお分かりですね? <!-- .element: style="font-size:360%" --> ---- + 公式が略語を例示 + `plt`/`np`/`pd` はそれに乗っかった + `tf` は `np` に引っ張られる形 <!-- .element: style="font-size:120%" --> ※私見です <!-- .element: class="fragment" style="text-align:right;font-size:60%" --> Note: 2〜3文字に略せば1行80文字以内に収まるしっ あとこれはあくまで私見ですっ --- # それで良いのか? ---- <blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">pandasにpd, numpyにnp など、慣習的に別名でインポートするモジュールがあるが、<br>①別名でインポートするか<br>②これについてどう思うか</p>&mdash; abap (@abap__) <a href="https://twitter.com/abap__/status/1124324227463520258?ref_src=twsrc%5Etfw">2019年5月3日</a></blockquote> <!--script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script--> Note: というアンケートがTwitterで展開されましたっ ---- ![投票結果](https://i.imgur.com/5i8Wdec.png) ---- + 7割以上の人が毒されている! + でも疑問に思っている人も一定数いる! <!-- .element: style="font-size:160%" --> ※私見です <!-- .element: class="fragment" style="text-align:right;font-size:60%" --> Note: 母数45人なのでまぁアレですが… --- # 今こそ全ての Pythonista に問います ---- ## あなたは `import 〜 as 〜` で 略語を使いますか? Note: それとも、`import` に `as` は使いませんか? --- ## 参考リンク + [PEP 221 -- Import As | Python.org](https://www.python.org/dev/peps/pep-0221/) --- ご清聴ありがとうございます。 Note: ご清聴ありがとうございますっ!
{"metaMigratedAt":"2023-06-14T22:02:37.071Z","metaMigratedFrom":"YAML","title":"`np` とか `tf` とか `pd` とか `plt` とか","breaks":true,"slideOptions":"{\"transition\":\"slide\",\"theme\":\"league\"}","contributors":"[{\"id\":\"80062a4b-8dad-49ac-95bf-848ce0686e9e\",\"add\":4579,\"del\":16088}]"}
    2109 views