Numpy配列において配列位置から要素値を取得したり,2次配列で特定の行や列から要素値を連続して取得する方法について解説しております.
スポンサーリンク
1次元配列の要素値の取得
1次元配列の要素値を取得するには,配列の後に角カッコ[]を付け,この中に取得したい要素のインデックス番号を設定します.ndarray[index]
・1次元配列の要素値を取得します.
[IN]
import numpy as np
a=np.array([0, 1, 2, 3, 4, 5, 6])
print("index=0 ",a[ 0 ] ) #インデックス=0
print("index=1 ",a[ 1 ] ) #インデックス=1
print("index=2 ",a[ 2 ] ) #インデックス=2
[OUT]
ndex=0 0
index=1 1
index=2 2
配列のインデックス番号は0番から始まります.インデクスで指示した配列の要素値を取得できた事が確認できました.
2次元配列について要素の値を取得します.
2次元配列の要素値の取得も1次元配列同様に配列の後に角カッコ[]を付け,この中に取得したい要素のインデックス番号を2次配列軸,1次配列軸の順番に設定します.
ndarray[2次配列軸のインデックス(行),1次配列軸のインデックス(列)]
・2次元配列で要素の値を取得します.
[IN]
import numpy as np
a=np.arange(12).reshape(3 , 4)
print("配列a \n" , a )
print()
print("a[0,0] \n" , a[0,0] ) #1行目の1列目の要素値を取得
print("a[2,3] \n" , a[1,2] ) #3行目の4列目の要素値を取得
[OUT]
配列a
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
a[0,0]
0
a[1,2]
6
下図にサンプルプログラムでの配列の要素値の取得のしかたを図示しました.
2次元配列の要素値の取得しましたが,多次元配列も同様の方法でできます.
配列内の要素値を連続して取得する
配列内の要素値をスライスを使って連続した範囲を取得します. 範囲の指定は[ 開始位置: 終了位置: 増分値 ]で行います.注意点として開始位置は取得されますが終了位置の値は取得されません.
・1次元配列の要素値を連続して取得します.
[IN]
import numpy as np
a=np.array([0, 1, 2, 3, 4, 5, 6, 7, 8 ])
print("a[2: 7] ", a[2: 7] ) #2~7の範囲を取得
print("a[2: ] ", a[2: ] ) #2以降の値を取得
print("a[ : 7] ", a[ : 7] ) #7より前の値を取得
print("a[2: 7: 2]", a[2: 7: 2] )#2~7の範囲で増分値2で取得
[OUT]
a[2: 7] [2 3 4 5 6]
a[2: ] [2 3 4 5 6 7 8]
a[ : 7] [0 1 2 3 4 5 6]
a[2: 7: 2] [2 4 6]
下図にスライスでの要素値の取得方法を示しました.
・2次元配列の要素値を連続して取得します.
配列内の1次元方向と2次元方向それぞれの範囲を指定して要素値を取得します.
2次元配列[2次元軸の範囲, 1次元軸の範囲 ]
5×5の配列を作成して,2~3行で,4列目に位置する要素値を取得します.
スライスを使って範囲指定すると
2~3行は 1:3
4列目は 3:4 と表せます.
[IN]
import numpy as np
a=np.arange(25).reshape(5 , 5)
print("配列( a )")
print(a)
print("要素取得")
print(a[1:3, 3:4])
[OUT]
配列( a )
[[ 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]]
要素取得
[[ 8]
[13]]
下図にスライスを使った2次元配列の要素値の取得方法を示します.
これで2次配列について要素範囲を連続して取り出せるようになりました.
スポンサーリンク
コメント