Чем отличаются numpy.ndarray.T и numpy.ndarray.transpose (), когда self.ndim <2 - PullRequest
19 голосов
/ 01 ноября 2010

Документ numpy.ndarray.T говорит

ndarray.T - То же, что self.transpose (), за исключением того, что self возвращается, если self.ndim <2.</p>

Кроме того, ndarray.transpose (* axes) говорит:

Для 1-D массива это не имеет никакого эффекта.

Doesnне значит ли это то же самое?

Вот небольшой демонстрационный фрагмент:

>>> 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 ]

19 голосов
/ 18 января 2011

Независимо от ранга, атрибут .T и метод .transpose() одинаковы - оба возвращают транспонирование массива.

В случае массива ранга 1 .T и .transpose() ничего не делают - оба возвращают массив.

6 голосов
/ 18 января 2011

Похоже, .T - это просто удобное обозначение, а .transpose(*axes) - более общая функция, предназначенная для обеспечения большей гибкости, поскольку можно указывать оси.По-видимому, они не реализованы в Python, поэтому нужно проверить код C, чтобы проверить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...