見出し画像

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.]])

ということもできます。

この記事が気に入ったらサポートをしてみませんか?