NumPy 1次元配列を列ベクトルに変換する方法
NumPy
で1次元配列(1次元のNumPy配列)を列ベクトルに変換する方法を紹介します。
import numpy as np
data = np.array([1, 2, 3, 4, 5, 6])
print(data)
# [1 2 3 4 5 6]
reshape
で配列の形状を変換します。
b = data.reshape(-1, 1)
print(b)
# [[1]
# [2]
# [3]
# [4]
# [5]
# [6]]
解説
配列A.reshape(行数, 列数)
とすると、配列Aを形状変換します。
c = data.reshape(2, 3)
print(c)
# [[1 2 3]
# [4 5 6]]
行数や列数に-1を指定すると自動で設定されます。
以下の例では行数に-1、列数に3を設定しています。列数3から行数は自動計算されて2となります。
d = data.reshape(-1, 3)
print(d)
# [[1 2 3]
# [4 5 6]]
変換したい形状は列ベクトルなので、列数に1を設定して、行数は-1を設定して自動計算するように変換します。
b = data.reshape(-1, 1)
print(b)
# [[1]
# [2]
# [3]
# [4]
# [5]
# [6]]