mathpython thesaurus

広告

NumPyで行列の行を抽出する:1行だけ・0行目からm行目まで・i行目からm行目まで

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

行の抽出は基本的にリストの抽出です。

広告

広告