前回はこちら
www.henjins-toolbox.tech
この記事の続きです。今回は100 numpy exercisesのQ6-Q10を解いていきます。
6. Create a null vector of size 10 but the fifth value which is 1
(サイズ10のゼロベクトルを作れ。ただし5番目の値は1にしろ)
Z = np.zeros(10) Z[4] = 1 print(Z)
[0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]
Q3と同じ方法で配列を作ってから、5番目の要素を1にしました。
インデックスで指定するだけなので、Pythonを書いたことある人なら普通にできると思います。
7. Create a vector with values ranging from 10 to 49
(10から49の値を持つベクトルを作れ。)
Z = np.arange(10,50) print(Z)
[10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49]
np.arrange()というのが標準Pythonに入っているrange()のnumpyみたいな感じですね。
8. Reverse a vector (first element becomes last)
(ベクトルを逆にしろ。)
Z = np.arange(50) Z = Z[::-1] print(Z)
[49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0]
適当にベクトルを作成してから逆順にします。スライスを使って逆順にしました。Python標準関数のreversed()などは使えないので注意してください。
9. Create a 3×3 matrix with values ranging from 0 to 8
(値が0から8の3×3行列を作れ。)
Z = np.arange(9).reshape(3,3) print(Z)
[[0 1 2] [3 4 5] [6 7 8]]
イメージとしては0から8までの配列を作ってから、形を変えてる感じですかね。
10. Find indices of non-zero elements from [1,2,0,0,4,0]
(行列[1,2,0,0,4,0]のゼロでない要素のインデックスを求めろ)
Z = [1,2,0,0,4,0] non_zero = np.nonzero(Z) print(non_zero)
(array([0, 1, 4]),)
ゼロでない要素のインデックスを返すnp.nonzero()があるのでこれを使います。
コメント