MENU

Numpyの配列の次元を変換する

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

この記事を書いた人

コメント

コメントする

目次
閉じる