`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>— 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}]"}