如何在numpy中更改数组形状?

时间:2015-06-05 13:49:05

标签: python numpy

如果我创建一个数组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

4 个答案:

答案 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))