配列 ベクトル 行列 統計

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]]

列の抽出は行の抽出とほとんど変わりません。コロンをつけると列、つけないと行の抽出になります。