如果我创建一个数组X = np.random.rand(D, 1)
,它的形状为(3,1)
:
[[ 0.31215124]
[ 0.84270715]
[ 0.41846041]]
如果我创建自己的数组A = np.array([0,1,2])
,那么它的形状为(1,3)
,看起来像
[0 1 2]
如何在阵列(3, 1)
上强制形状A
?
答案 0 :(得分:3)
numpy已经有一个“重塑”方法,numpy.ndarray.shape你可以用它来改变数组的形状。
A.shape = (3,1)
答案 1 :(得分:3)
A=np.array([0,1,2])
A.shape=(3,1)
或
A=np.array([0,1,2]).reshape((3,1)) #reshape takes the tuple shape as input
答案 2 :(得分:1)
numpy模块有一个reshape
函数,而ndarray有一个reshape
方法,其中任何一个都可以用来创建一个你想要的形状的数组:
import numpy as np
A = np.reshape([1, 2, 3, 4], (4, 1))
# Now change the shape to (2, 2)
A = A.reshape(2, 2)
Numpy将检查数组的大小是否不会改变,即prod(old_shape) == prod(new_shape)
。由于这种关系,你可以用-1
替换形状中的一个值,numpy会为你找出它:
A = A.reshape([1, 2, 3, 4], (-1, 1))
答案 3 :(得分:0)
您可以直接设置形状,即
A.shape = (3L, 1L)
或者您可以使用调整大小功能:
A.resize((3L, 1L))
或在使用重塑
创建时A = np.array([0,1,2]).reshape((3L, 1L))