一维数组的 Numpy 转置未给出预期结果

2023-12-31

我正在尝试 Python scipy 模块中的一个非常基本的示例transpose()方法,但没有给出预期结果。我正在使用 Ipython 和 pylab 模式。

a = array([1,2,3]
print a.shape
>> (3,)

b = a.transpose()
print b.shape
>> (3,)

如果我打印数组“a”和“b”的内容,它们是相似的。

期望是:(这将在 Matlab 中转置)

 [1,
  2,
  3]

NumPy's transpose()有效地反转数组的形状。如果数组是一维的,则意味着它没有效果。

在 NumPy 中,数组

array([1, 2, 3])

and

array([1,
       2,
       3])

实际上是相同的——它们只是空格不同。您可能想要的是相应的二维数组,其中transpose()会工作得很好。还可以考虑使用 NumPymatrix type:

In [1]: numpy.matrix([1, 2, 3])
Out[1]: matrix([[1, 2, 3]])

In [2]: numpy.matrix([1, 2, 3]).T
Out[2]: 
matrix([[1],
        [2],
        [3]])

请注意,对于大多数应用程序,普通的一维数组作为行向量或列向量都可以很好地工作,但是当来自 Matlab 时,您可能更喜欢使用numpy.matrix.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一维数组的 Numpy 转置未给出预期结果 的相关文章

随机推荐