NumPy配列のインデックス・ファンシーインデックス・スライシングの組み合わせ 2015/04/25
NumPyの多次元のndarrayでは、インデックスでの参照、 ファンシーインデックス、スライシングを組み合わせて、複雑な参照をすることもできる。
次の2次元配列について、いろいろな参照の例を挙げておく。
ndarr1 = np.array([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]])
print(ndarr1)
# 出力結果
# [[ 1. 2. 3.]
# [ 4. 5. 6.]
# [ 7. 8. 9.]]
インデックスとスライス表記の組み合わせ
print(ndarr1[2, 1:3])
# 出力結果
# [ 8. 9.]
print(ndarr1[1:3, 2])
# 出力結果
# [ 6. 9.]
ファンシーインデックスとスライス表記の組み合わせ
print(ndarr1[[0, 2], 1:3])
# 出力結果
# [[ 2. 3.]
# [ 8. 9.]]
print(ndarr1[1:3, [0, 2]])
# 出力結果
# [[ 4. 6.]
# [ 7. 9.]]
インデックスとファンシーインデックスの組み合わせ
print(ndarr1[2, [0, 2]])
# 出力結果
# [ 7. 9.]
print(ndarr1[[0, 2], 2])
# 出力結果
# [ 3. 9.]