当我以以下方式编写代码时:
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的转置。
我不明白这里发生了什么。是使用转置函数的方式还是定义矩阵的方式?
答案 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,)
。它只有一个维度。要交换尺寸(转置),您至少需要两个。