の続き。 今回はNumbPy編。
NumPyとは
Pythonの計算は遅い。これはPythonに限った話ではないが、遅い。
しかしPythonは、C言語などの静的言語と組み合わせることで高速化することができる。動的言語あるあるですかね?こういうのは
NumPyの特徴は数学計算でよく使われるもの(配列など)をC言語やFortranによって高速化されているため、純粋にPythonを使うよりは早い(どれほど早いかはここでは比較しない)。さすが女神*1だ。
インポート
ライブラリ本体はAnacondaに入っているので、ダウンロードは必要ない。
そのまま、import numpy
とか書けばいい。
書籍的には略したいらしく、import numpy as np
と書けば短くなるぞ!みたいなことを書いているが、私の場合は逆に混乱するので(やたらと言葉を略すな!というやつだ)、素直にnumpy
と書く。
配列は神
書籍はこの後、ひたすらnumpy.array()
の話をする。
これが結構賢くなった気分にしてくれる。
配列は1次元だけではなく、多次元も表現できる(行列もつくれるぞ!)。
また、2×2の行列に対しスカラ値を与えると、スカラ値が勝手に2×2行列に変身し(ブロードキャスト)、いい感じに計算してくれる。
個人的に一番驚いたのがこれ。
>>> X = numpy.array([[51, 55], [14, 19], [0, 4]]) >>> X = X.flatten() # Xを1次元配列に変換 [51, 55, 14, 19, 0, 4] >> X[numpy.array([0, 2, 4])] # Xから0,2,4番目の要素を取得 [51, 14, 0] >>> X > 15 [True, False, True, False, False, False] >>> X[X>15] [51, 55, 19]
※print
で出力しましょう…!
シェーダーで流行らないだろうか…
書籍は一応ここまで。
別のページでNumPyのうんちくがあれば追記するかも…?
*1:Perl、C、Scala…プログラミング言語擬人化計画2|【Tech総研】 C言語が擬人化されている