numpy.ndarray.T和numpy.ndarray.transpose()在self.ndim < 2时有什么区别?
文档 numpy.ndarray.T 里提到:
ndarray.T — 和 self.transpose() 一样,不过如果 self 的维度小于 2,就直接返回 self。
另外,ndarray.transpose(*axes) 也提到:
对于一维数组,这个操作没有任何效果。
这是不是意味着它们的意思是一样的呢?
这里有一个小示例代码:
>>> import numpy as np
>>> print np.__version__
1.5.1rc1
>>> a = np.arange(7)
>>> print a, a.T, a.transpose()
[0 1 2 3 4 5 6] [0 1 2 3 4 5 6] [0 1 2 3 4 5 6]
2 个回答
9
看起来 .T
只是一个方便的写法,而 .transpose(*axes)
是一个更通用的函数,目的是提供更多的灵活性,因为你可以指定轴(axes)。显然,这些功能在Python中并没有实现,所以如果想了解更多,就得去查看C语言的代码了。
26
无论数组的维度是什么,.T
属性和 .transpose()
方法都是一样的——它们都会返回数组的转置。
对于一维数组来说,.T
和 .transpose()
不会有任何变化——它们都会返回原来的数组。