numpyを軽く学ぶ / Python Tips.
Pythonと言えば学術計算や研究分野で多く活用されているプログラミング言語です。
そのような計算で用いるデータを扱いやすくしてくれる定番の外部ライブラリがあります。
それがnumpyです。
主に行列や配列の操作、集計を簡単に行うことができます。
環境
インタプリタのバージョンは3.6、OSはMacOSです。
インストール
AnacondaでPythonをインストールした人はすでにインストールされていると思います。
そうでないひとは、
pipで簡単にインストールできます。
pip install numpy
読み込み
慣習的にasを使用してnumpyはnpとします。
import numpy as np
ndarray
numpyはndarrayという配列様のクラスを持っています。
numpyの各種メソッドはこのndarrayに対して行います。
注意点として、同じndarrayには1種類のデータ型しかいれることが出来ません。
作成
nda = np.array([1, 2, 3, 4, 5])
nda
type(nda)
>>>
array([1 2 3 4 5])
<class 'numpy.ndarray'>
演算
ndarrayに対する演算は要素全てに適応されます。
# べき乗
nda ** 2
# 除算
nda / 2
>>>
array([ 1, 4, 9, 16, 25])
array([0.5, 1. , 1.5, 2. , 2.5])
2次元データの作成
2次元リストを渡すことで二次元のndarrayを作成できます。
np.array([
[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10],
[11, 12, 13, 14, 15]
])
>>>
array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10],
[11, 12, 13, 14, 15]])
等差数列の作成
等差数列というのは、以下のように各要素の前後の値との差が等しい数列のことです。
1, 2, 3, 4, 5
0.1, 0.2, 0.3, 0.4, 0.5
これをnumpyで作成する場合はarangeというメソッドが用意されているのでそれを用います。
np.arange(start=1, stop=11, step=1)
>>>
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
arange関数のstart, stop, step引数に値を渡しましょう。
startは開始位置、stopは終了位置(最大値が指定の数値-1になることに注意)、stepによって差を指定します。
わかりやすく名前付き引数で渡していますが、順番はstart, stop, stepの順なので名前付きにする必要はありません。
同じ値で埋めたarrayを作りたいとき
tile関数を使うことで表現できます。
例えば全て「にゃ」で埋めるならこう。
np.tile("にゃ", 10)
>>>
array(['にゃ', 'にゃ', 'にゃ', 'にゃ', 'にゃ', 'にゃ', 'にゃ', 'にゃ', 'にゃ', 'にゃ'],
dtype='<U2')
第一引数に埋めたい値、第二引数にサイズを指定します。
また、0または1のみで表現される行列を作る場合に限り特別に関数が用意されています。
引数にサイズを指定します。
np.zeros(10)
>>>
array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
np.ones(10)
>>>
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
スライス
ndarrayはスライス表記が使えます。
nda = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
nda[2:7]
>>>
array([3, 4, 5, 6, 7])
おわり