小编典典

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

python

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

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

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

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

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

 [1,
  2,
  3]

阅读 210

收藏
2020-12-20

共1个答案

小编典典

NumPytranspose()有效地反转了数组的形状。如果数组是一维的,则意味着它无效。

在NumPy中,数组

array([1, 2, 3])

array([1,
       2,
       3])

实际上是相同的–它们只是空白不同。您可能想要的是相应的二维数组,该数组transpose()可以正常工作。还可以考虑使用NumPy的matrix类型:

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

2020-12-20