我要转换此数组(1、16)
[[4 4 4 4 4 4 4 4 4 4 4 4 0 0 0 0]]
(p)在(1,16,1)数组中。
我尝试过:
board = board[np.newaxis, :]
,但不是输出。
我该怎么做?
答案 0 :(得分:2)
您必须将np.newaxis
放在要使用此新轴的尺寸上。
board[np.newaxis,:] -> puts the axis in the first dimension [1,1,16]
board[:,np.newaxis] -> puts the axis in the second dimension [1,1,16]
board[:,:,np.newaxis] -> puts the axis in the third dimension [1,16,1]
答案 1 :(得分:1)
我的首选方法(很容易找到新轴,并且只涉及内置的None
)
import numpy as np
a1 = np.array([[4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0]])
print(a1[:,:,None].shape)
就像疯物理学家提到的那样,这严格等同于使用np.newaxis
:print(np.newaxis)
返回None
。
答案 2 :(得分:1)
尝试重塑:
import numpy as np
a = np.array([[4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0]])
print(a.reshape(1,16,1).shape)
答案 3 :(得分:1)
此外,您可以按以下方式使用numpy.expand_dims()
:
# input arrray
In [41]: arr
Out[41]: array([[4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0]])
In [42]: arr.shape
Out[42]: (1, 16)
# insert a singleton dimension at the end
In [44]: arr_3D = np.expand_dims(arr, -1)
# desired shape
In [45]: arr_3D.shape
Out[45]: (1, 16, 1)
数组升级的其他方法是:
In [47]: arr[..., None]
In [48]: arr[..., np.newaxis]