2015-10-30 17 views
9

Często używam theano.tensor.dimshuffle. Czy istnieje odpowiednia funkcja dla Numpy?Równoważna funkcja dimshuffle w Numpy

Chyba mogę zrobić to samo przez kilka numpy.swapaxes i numpy.newaxis (wymiary Broadcast), numpy.reshape ale jest jakiś prostszy lub bardziej bezpośredni sposób, tak jak dimshuffle?

+5

Wygląda na to, że szukasz ['numpy.transpose'] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.transpose.html). – Divakar

+0

Możesz dodać znacznik Pythona. – cel

+0

@Divakar powinieneś opublikować to jako odpowiedź –

Odpowiedz

9

Funkcja numpy.transpose pozwala na dowolną permutację osi macierzy.

Odmiana array.T jest szczególnym przypadkiem, odpowiadającym array.transpose() bez argumentów, która domyślnie przyjmuje wartość array.transpose(range(array.ndim)[::-1]).

numpy.swapaxes jest numpy.transpose ograniczone do permutacji dwóch osi.

theano.tensor.dimshuffle zasadniczo odpowiada numpy.transpose, ale dodatkowo, pozwala na tworzenie nowych osi o długości 1 dla nadawców, dodając 'x' gdzie oś powinny być tworzone. W numpy można to osiągnąć, stosując kombinację transpose i reshape.

Należy pamiętać, że w numpy należy zwrócić uwagę, aby transpose zwrócił widok danych, gdy tylko jest to możliwe. W theano prawdopodobnie tak jest, ale może zależeć od tego, w jaki sposób kod został zoptymalizowany.

Powiązane problemy