首页 > 解决方案 > 关于 .shape 的 Numpy 数组问题

问题描述

我是 numpy 的新手,我在数组形状方面遇到了一些麻烦。

我想在matlab中像矩阵一样操作数组。但是,我对以下事情感到困惑:

>>> b = np.array([[1,2],[3,4]])
array([[1, 2],
       [3, 4]])

>>> c = b[:,1] # I want c is a column vector
>>> c.shape
(2,)

>>> d = b[1,:] # I want d is a row vector
>>> d.shape
>>> (2,)

我想分别将cd视为列向量和行向量。

我不明白为什么c并且d具有相同的形状(2,)

所以在以后的计算中给我带来了麻烦。

谁能帮我解决这个问题。非常感谢 !

标签: arrayspython-3.xnumpy

解决方案


一般来说,如果您希望您的数组c是 shape 的列向量(2,1),您可以通过以下方式重塑它:

c = c.reshape(-1,1) # c.shape --> (2, 1)

同样,如果您希望您的数组d是 shape 的行向量(1,2),您可以通过以下方式重塑它:

d = d.reshape(1,-1) # d.shape --> (1, 2)

推荐阅读