newaxis ndarray multidimensional index array python numpy

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 ).