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 en Nonelugar de newaxis, el efecto es exactamente el mismo.
¿Hay alguna razón para elegir uno sobre el otro? ¿Existe alguna preferencia general o guía de estilo? Mi impresión es que newaxises más popular, probablemente porque es más explícito. Entonces, ¿hay alguna razón por la que Noneesté permitido?

Nonees mejor es la optimización de la velocidad de ejecución, ya que puede proporcionar un beneficio de tiempo muy pequeño. Pero normalmente deberías preferirnp.newaxis.newaxis = object()(o el equivalente de nivel C) está más allá de mí ... usarNonees bastante propenso a errores. Tenía una función con un error (una basereturnque se suponía que devolvía una matriz booleana) y comencé a recibir errores debido a una falta de coincidencia de formas. Me tomó un tiempo darme cuenta de que indexar conNoneno solo genera unIndexError. Si hubieran usado un valor centinela "nuevo", habría evitado 30 minutos de intentar dar sentido al error ...