18

具有(N,1)和(N,)形状的numpy数组(比如说X)有什么区别。它们都不是 Nx1 矩阵吗?我问的原因是因为有时计算返回一个或另一个。

4

1 回答 1

15

这是一个一维数组:

>>> np.array([1, 2, 3]).shape
(3,)

该数组是二维的,但第一维中只有一个元素:

>>> np.array([[1, 2, 3]]).shape
(1, 3)

转置给出了您要求的形状:

>>> np.array([[1, 2, 3]]).T.shape
(3, 1)

现在,看看数组。仅填充此二维数组的第一列。

>>> np.array([[1, 2, 3]]).T
array([[1],
       [2],
       [3]])

给定这两个数组:

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

您可以利用广播:

>>> a * b
array([[1, 2, 3],
       [2, 4, 6],
       [3, 6, 9]])

填写缺失的数字。考虑表格或电子表格中的行和列。

>>> a + b
array([[2, 3, 4],
       [3, 4, 5],
       [4, 5, 6]]) 

用更高的维度来做这件事会让你的想象力变得更难。

于 2013-06-08T02:24:33.673 回答