2015-10-30 19 views
9

Io uso spesso theano.tensor.dimshuffle. Esiste una funzione equivalente per Numpy?Funzione equivalente dimmer in Numpy

Credo che avrei potuto fare lo stesso attraverso diversi numpy.swapaxes e numpy.newaxis (per le dimensioni di trasmissione), numpy.reshape ma c'è un modo più semplice o più diretto, proprio come dimshuffle?

+5

Sembra che tu stia cercando ['numpy.transpose'] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.transpose.html). – Divakar

+0

Si potrebbe voler aggiungere un tag python. – cel

+0

@Divakar dovresti postarlo come risposta –

risposta

9

La funzione numpy.transpose consente qualsiasi permutazione degli assi di un array.

La varietà array.T è un caso speciale di questo, corrispondente a array.transpose() senza argomenti, che per impostazione predefinita è array.transpose(range(array.ndim)[::-1]).

numpy.swapaxes è numpy.transpose limitato a permutazioni di due assi.

theano.tensor.dimshuffle corrisponde essenzialmente alla numpy.transpose, ma in aggiunta, esso consente la creazione di nuovi assi di lunghezza 1 per la trasmissione, aggiungendo 'x' ovunque un asse deve essere creato. In numpy, questo può essere ottenuto utilizzando una combinazione di transpose e reshape.

Nota che in numpy, è necessario fare in modo che transpose restituisca una vista sui dati ogni volta che è possibile. Anche in questo caso è probabilmente il caso, ma può dipendere da come il codice è ottimizzato.

Problemi correlati