Numpyで要素がn個の1次元の配列をn×1の配列の2次元の配列に変換するためには、列方向にnewaxisを指定してスライシングします。また、1×nの2次元配列に変換するためには、行方向にnewaxisを指定してスライシングします。これに対しreshapeメソッドを使い次元変更する面白い方法を見つけました。行数、列数に-1を指定することで、その配列の大きさを表現することができます。このあたり、Pythonの面白いところです。
【Pyton Code】
import numpy as np x = np.array([1, 2, 3, 4, 5, 6]) #Newaxis x_newaxis0 = x[:, np.newaxis] x_newaxis1 = x[np.newaxis, :] print('x_newaxis0 = \n', x_newaxis0) print('x_newaxis1 = \n', x_newaxis1) #Reshape - x_reshape0 = x.reshape((-1, 1)) x_reshape1 = x.reshape((1, -1)) print('x_reshape0 = \n', x_reshape0) print('x_reshape1 = \n', x_reshape1)
【Output】
x_newaxis0 =
[[1]
[2]
[3]
[4]
[5]
[6]]
x_newaxis1 =
[[1 2 3 4 5 6]]
x_reshape0 =
[[1]
[2]
[3]
[4]
[5]
[6]]
x_reshape1 =
[[1 2 3 4 5 6]]
コメント