数学の概念で言えば,1次元の場合はベクトルに,
2次元の場合は行列に,そして3次元以上の場合はテンソルに該当
1 2 3 4 5 6 7 8 9 10 11 12 |
In [1]: import numpy as np In [2]: mylist=[1,2,3,4] In [3]: np.array(mylist) Out[3]: array([1, 2, 3, 4]) In [4]: mylist Out[4]: [1, 2, 3, 4] In [5]: type(mylist) Out[5]: list |
np.arrayでarrayに変換しても一時的にしか変換できていません
継続してarray型にするには変数に入れる必要があります。
1 2 3 4 5 6 7 |
In [6]: arr = np.array(mylist) In [7]: type(arr) Out[7]: numpy.ndarray In [8]: arr Out[8]: array([1, 2, 3, 4]) |
このようにすれば変数arrはいつまでもarray型をキープできます。
2次元配列とは以下のようなもので[[ と ]]のダブルカッコがあります
1 2 3 4 5 6 |
In [12]: np.zeros((2,20)) Out[12]: array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]]) |
np.zeros()の第一引数は列の数で第二引数は行の数となり
全て0で満たされます。
2次元配列から一を指定して値を取得する方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
In [20]: mat Out[20]: array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [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], [50, 51, 52, 53, 54, 55, 56, 57, 58, 59], [60, 61, 62, 63, 64, 65, 66, 67, 68, 69], [70, 71, 72, 73, 74, 75, 76, 77, 78, 79], [80, 81, 82, 83, 84, 85, 86, 87, 88, 89], [90, 91, 92, 93, 94, 95, 96, 97, 98, 99]]) In [21]: mat[5,2] Out[21]: 52 |
カラム、列の値を縦一直線に欲しい場合は”:”を使う
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [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], [50, 51, 52, 53, 54, 55, 56, 57, 58, 59], [60, 61, 62, 63, 64, 65, 66, 67, 68, 69], [70, 71, 72, 73, 74, 75, 76, 77, 78, 79], [80, 81, 82, 83, 84, 85, 86, 87, 88, 89], [90, 91, 92, 93, 94, 95, 96, 97, 98, 99]]) In [23]: mat[:,2] Out[23]: array([ 2, 12, 22, 32, 42, 52, 62, 72, 82, 92]) |
行の値を横一直線に欲しい場合は以下のようにする
1 2 |
In [24]: mat[2,:] Out[24]: array([20, 21, 22, 23, 24, 25, 26, 27, 28, 29]) |
条件に合う値のみを抽出
1 2 3 4 5 |
In [25]: mat[mat>50] Out[25]: array([51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]) |
コメントを残す