np.transpose不返回矩阵的转置

时间:2018-08-26 08:40:52

标签: python numpy

当我以以下方式编写代码时:

from numpy import *
H = array([1,1])
Ht = transpose(H)
Ht

我得到与H相同的矩阵,而不是H的转置。

但是当我通过以下方式更改矩阵H时:

from numpy import *
H = array(([1,1],[2,3]))
Ht = transpose(H)
Ht

我得到H的转置。

我不明白这里发生了什么。是使用转置函数的方式还是定义矩阵的方式?

2 个答案:

答案 0 :(得分:1)

从文档中:

  

numpy.matrix.transpose。返回转置轴的数组视图。对于一维阵列,这无效。 (要在列向量和行向量之间切换,请先将一维数组转换为一个矩阵对象)。

答案 1 :(得分:0)

我认为这是您要寻找的行为:

>>> H = np.array([[1,1]])
>>> H.T
array([[1],
       [1]])

等效地,您可以编写np.transpose(H)。请注意,此数组的形状为(1,2),因此具有两个维度。数组H = np.array([1,2])的形状为(2,)。它只有一个维度。要交换尺寸(转置),您至少需要两个。