
Python - 便利なNumpy (2) - 配列(list)
計算
計算をしてみます。合計は
f = np.array([[1, 2, 3], [4, 5, 6]])
np.sum(f)
とすると全てを足し合わせた"21"が出力されます。
配列ごと
np.sum(f, axis=1)
array([ 6, 15])と出てのきます。2つの配列それぞれの合計が出てきています。
axisについては
リストの取り扱い
配列の形状を変えることができます。"reshape"関数を使います。
f = np.array([[1, 2, 3], [4, 5, 6]])
配列としてはshape(2,3)
array([[1, 2, 3],
[4, 5, 6]])
これをshape(3,2)にします。
f.reshape(3,2)
として実行すると出力は
array([[1, 2],
[3, 4],
[5, 6]])
配列が変更されていることが確認できます。
転置します。転置とは、行列などで縦と横の要素を入れ替えることです。
f.T
を実行すると
array([[1, 4],
[2, 5],
[3, 6]])
入れ替わっているのがわかります。
np.randomクラスにいろんな乱数を発生させることができます。Numpyのライブラリで実行できます。
randn関数が標準正規分布に従った値を返し、rand関数は0~1までの値の中で乱数を返します。
np.random.randn()
-0.08895568659670221
np.random.rand()
0.45804249260015717
という感じになり、配列の中に入れ込む方法は
np.random.randn(2,3)
これを実行すると。
array([[-0.78659107, 2.74595556, -1.20890285],
[ 0.8744038 , -0.21526293, 0.75712121]])
とランダムに数値を入れることができます。
他にも、0を要素とする配列を生成します。
np.zeros(5)
実行すると
array([0., 0., 0., 0., 0.])
これは多次元配列も
np.zeros((2,2))
とすることで
array([[0., 0.],
[0., 0.]])
さらにあるリストと同じように要素の部分を"0"にした配列を作ることもできます。
a = np.array([1, 2, 3])
np.zeros_like(a)
とすると
array([0, 0, 0])
他にも"1"の配列を作る場合
np.ones(3)
単位行列を作る
np.eye(4)
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
ということもできます。