numpy – newaxisで配列に次元(ndim)を追加する方法

import numpy as np

x = np.arange(3)
print (x)
>>>[0 1 2]
print (x.shape)
>>>(3,)
print (x[:, np.newaxis])
>>>[[0]
[1]
[2]]
print (x[:, np.newaxis].shape)
>>>(3, 1)

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
import numpy as np
y = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
#2次元配列の第2列を読むと、1次元になる
c=y[:, 1]
print(c)
>>>[ 2 6 10]
#このとき、newaxisを利用してみて
c=y[:, 1][:, np.newaxis]
print(c)
>>>[[ 2]
[ 6]
[10]]
#2次元のままでしょ

#第2列と第4列を取りたい場合
y_sub = np.hstack([y[:, 1][:, np.newaxis], y[:, 3][:, np.newaxis]])
print(y_sub)
>>>[[ 2 4]
[ 6 8]
[10 12]]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です