NumPyで行列の列を抽出する:1列だけ・0列目からm列目まで・i列目からm列目まで
2023.02.18
NumPy で行列から列を抽出するには下のようにコロンをつけます。
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 2 1]
print(a1) # [-3 5 4]
print(a2) # [4 8 9]
返り値のベクトルは ndarray となっています。
print(type(a0)) # <class 'numpy.ndarray'>
NumPy で指定した複数の列を抽出する
import numpy as np
A = np.array([[7, -3, 4],
[2, 5, 8],
[1, 4, 9]])
a = A[:, [0, 1]]
b = A[:, [0, 2]]
c = A[:, [1, 2]]
d = A[:, [0, 1, 2]]
print(a)
# [[ 7 -3]
# [ 2 5]
# [ 1 4]]
print(b)
# [[7 4]
# [2 8]
# [1 9]]
print(c)
# [[-3 4]
# [ 5 8]
# [ 4 9]]
print(d)
# [[ 7 -3 4]
# [ 2 5 8]
# [ 1 4 9]]
NumPy で 0 列目から n 列目までの列を抽出する
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]
# [2]
# [1]]
print(a2)
# [[ 7 -3]
# [ 2 5]
# [ 1 4]]
print(a3)
# [[ 7 -3 4]
# [ 2 5 8]
# [ 1 4 9]]
NumPy で i 列目から n 列目までの列を抽出する
import numpy as np
A = np.array([[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4]])
a2 = A[:, 2:2]
a3 = A[:, 2:3]
a4 = A[:, 2:4]
a5 = A[:, 2:5]
a6 = A[:, 2:5]
print(a2)
# []
print(a3)
# [[2]
# [2]
# [2]]
print(a4)
# [[2 3]
# [2 3]
# [2 3]]
print(a5)
# [[2 3 4]
# [2 3 4]
# [2 3 4]]
print(a6)
# [[2 3 4]
# [2 3 4]
# [2 3 4]]
列の抽出は行の抽出とほとんど変わりません。コロンをつけると列、つけないと行の抽出になります。