python - ndarray - Numpy: ¿Debo usar newaxis o None?
numpy newaxis (1)
En numpy uno puede usar el objeto ''newaxis'' en la sintaxis de corte para crear un eje de longitud uno, por ejemplo:
import numpy as np
print np.zeros((3,5))[:,np.newaxis,:].shape
# shape will be (3,1,5)
La documentación indica que también se puede usar None
lugar de newaxis
, el efecto es exactamente el mismo.
¿Hay alguna razón para elegir uno sobre el otro? ¿Hay alguna preferencia general o guía de estilo? Mi impresión es que newaxis
es más popular, probablemente porque es más explícito. Entonces, ¿hay alguna razón por la cual None
está permitido?
None
está permitido porque numpy.newaxis
es simplemente un alias para None
.
In [1]: import numpy
In [2]: numpy.newaxis is None
Out[2]: True
Los autores probablemente lo eligieron porque necesitaban una constante conveniente, y None
estaba disponible.
En cuanto a por qué debería preferir newaxis
sobre None
: principalmente es porque es más explícito, y en parte porque algún día los autores numpy
podrían cambiarlo a algo distinto de None
. (No están planeando hacerlo, y probablemente no, pero no hay una buena razón para preferir None
).