Разница между npytranspose (matrix) numpy и np.matrix.transpose () в двумерной матрице? - PullRequest
0 голосов
/ 26 сентября 2018

Существует ли функциональная разница между npytranspose (matrix) и np.matrix.transpose () в numpy в двумерной матрице, если в них не указаны оси?

Кроме того, кто-то может попытаться объяснить интуитивнокак работает спецификация осей?

Спасибо!

1 Ответ

0 голосов
/ 27 сентября 2018
In [16]: np.matrix.transpose
Out[16]: <method 'transpose' of 'numpy.ndarray' objects>

Это то же самое, что и np.ndarray.transpose.Другими словами, это метод transpose, который подкласс np.matrix наследует от родительского np.ndarray (то, что мы обычно называем массивом numpy).

np.transpose - это эквивалент функции, который в конечном итоге вызываетметод транспонирования.Он отличается тем, что сначала может преобразовать свои входные данные в массив, например, если входными данными является списокУ списков, конечно, нет метода транспонирования.

Что касается того, что он делает - с массивом 2d он выполняет обычную математически определенную транспозицию.Что может смутить пользователей из других языков, так это то, что они обобщают концепцию до 1d, 3d и выше.Пока вы это делаете, убедитесь, что вы понимаете разницу между 1d и 2d массивом.Если вы не уверены в этом, транспонирование останется загадкой.

Транспонирование и параметр его осей были объяснены в другом вопросе 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.

...