在二维矩阵中,如果没有指定轴,则numpy的np.transpose(matrix)和np.matrix.transpose()之间是否存在功能差异?
还有,有人可以尝试直观地解释轴规格如何工作吗?
谢谢!
答案 0 :(得分:0)
In [16]: np.matrix.transpose
Out[16]: <method 'transpose' of 'numpy.ndarray' objects>
这与np.ndarray.transpose
相同。换句话说,transpose
子类继承自父np.matrix
(我们通常称为np.ndarray
数组)是numpy
方法。
np.transpose
是等效的函数,最终调用了transpose方法。不同之处在于它可以先将其输入转换为数组,例如如果输入是列表。列表当然没有转置方法。
关于它的作用-使用2d数组,它执行通常的数学定义的转置。使其他语言的用户感到困惑的是,它将该概念推广到了1d,3d和更高版本。在使用它时,请确保您了解一维和二维数组之间的区别。如果您不清楚,转置将仍然是一个难题。
转置及其轴参数已在其他SO问题中进行了说明。我建议您在交互式会话旁阅读文档,在该会话中您可以使用各种尺寸的数组。
In [23]: x = np.arange(24).reshape(2,3,4)
In [24]: x.transpose().shape
Out[24]: (4, 3, 2)
In [25]: x.transpose(0,2,1).shape
Out[25]: (2, 4, 3)
不要试图继承MATLAB的直觉。