【问题标题】:np.transpose doesn't return transpose of matrixnp.transpose 不返回矩阵的转置
【发布时间】:2018-08-26 08:40:52
【问题描述】:

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

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 的转置。

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

【问题讨论】:

    标签: python numpy


    【解决方案1】:

    来自文档:

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

    【讨论】:

    • 当我使用以下命令时:matrix('[1, 2; 3, 4]') 它说'list' object is not callable
    • 您调用了变量matrix 并为其分配了一个列表。这就是为什么from numpy import * 是个坏主意。
    【解决方案2】:

    我认为这是您正在寻找的行为:

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

    等效地你可以写np.transpose(H)。注意这个数组的形状是(1,2),所以它有两个维度。数组H = np.array([1,2]) 的形状为(2,)。它只有一个维度。要交换维度(转置),您至少需要其中两个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-20
      • 2012-03-20
      • 1970-01-01
      • 2011-05-07
      • 2019-03-02
      • 1970-01-01
      • 2021-05-11
      相关资源
      最近更新 更多