Fetta dell'array NumPy usando None
Domanda
Questo mi ha fatto grattare la testa per un po '. Stavo tagliando involontariamente un array con None e ottenendo qualcosa di diverso da un errore (mi aspettavo un errore). Al contrario, restituisce un array con una dimensione aggiuntiva.
>>> import numpy
>>> a = numpy.arange(4).reshape(2,2)
>>> a
array([[0, 1],
[2, 3]])
>>> a[None]
array([[[0, 1],
[2, 3]]])
Questo comportamento è intenzionale o un effetto collaterale? Se intenzionale, c'è qualche logica per questo?
Soluzione
L'uso di None equivale all'utilizzo di numpy.newaxis
, quindi sì, è intenzionale. In realtà, sono la stessa cosa, ma, naturalmente, newaxis
lo spiega meglio.
L'oggetto newaxis può essere utilizzato in tutte le operazioni di taglio per creare un asse di lunghezza uno. newaxis è un alias per & # 8216; None & # 8217 ;, e & # 8216; None & # 8217; può essere usato al posto di questo con lo stesso risultato.