NumPyで行列の行を抽出する:1行だけ・0行目からm行目まで・i行目からm行目まで
2023.02.18
NumPy で行列から行を抽出するには、行列にインデックスを指定します。最初の行は 0 です。
import numpy as np
A = np.array([[7, -3, 4],
[2, 5, 8],
[1, 4, 9]])
a0 = A[0]
a1 = A[1]
a2 = A[2]
print(a0) # [ 7 -3 4]
print(a1) # [2 5 8]
print(a2) # [1 4 9]
行列は配列の配列であり、行は行列の子要素なので、A[1] で 1 行目が返ります。行数から 1 を引いた数をそのまま入れるやり方の他に、次のような書き方があります。
import numpy as np
A = np.array([[7, -3, 4],
[2, 5, 8],
[1, 4, 9]])
a = A[1]
b = A[1,]
c = A[1, :]
print(a) # [2 5 8]
print(b) # [2 5 8]
print(c) # [2 5 8]
NumPy で指定した複数の行を抽出する
import numpy as np
A = np.array([[7, -3, 4],
[2, 5, 8],
[1, 4, 9]])
a = A[[0, 1], :]
print(a)
# [[ 7 -3 4]
# [ 2 5 8]]
b = A[[0, 2], :]
print(b)
# [[ 7 -3 4]
# [ 1 4 9]]
c = A[[1, 2], :]
print(c)
# [[2 5 8]
# [1 4 9]]
d = A[[0, 1, 2], :]
print(d)
# [[ 7 -3 4]
# [ 2 5 8]
# [ 1 4 9]]
NumPy で 0 行目から m 行目までの行を抽出する
import numpy as np
A = np.array([[7, -3, 4],
[2, 5, 8],
[1, 4, 9]])
a0 = A[:0]
a1 = A[:1]
a2 = A[:2]
a3 = A[:3]
print(a0)
# []
print(a1)
# [[ 7 -3 4]]
print(a2)
# [[ 7 -3 4]
# [ 2 5 8]]
print(a3)
# [[ 7 -3 4]
# [ 2 5 8]
# [ 1 4 9]]
NumPy で i 行目から m 行目までの行を抽出する
import numpy as np
A = np.array([[0, 0, 0],
[1, 1, 1],
[2, 2, 2],
[3, 3, 3],
[4, 4, 4]])
a2 = A[2:2]
a3 = A[2:3]
a4 = A[2:4]
a5 = A[2:5]
a6 = A[2:6]
print(a2)
# []
print(a3)
# [[2 2 2]]
print(a4)
# [[2 2 2]
# [3 3 3]]
print(a5)
# [[2 2 2]
# [3 3 3]
# [4 4 4]]
print(a6)
# [[2 2 2]
# [3 3 3]
# [4 4 4]]
行の抽出は基本的にリストの抽出です。