Dans numpy, on peut utiliser l'objet 'newaxis' dans la syntaxe de découpage pour créer un axe de longueur un, par exemple:
import numpy as np
print np.zeros((3,5))[:,np.newaxis,:].shape
# shape will be (3,1,5)
Le la documentation indique que l'on peut également utiliser None
au lieu de newaxis
, l'effet est exactement le même.
Y a-t-il une raison de choisir l'un plutôt que l'autre? Existe-t-il une préférence générale ou un guide de style? Mon impression est que newaxis
est plus populaire, probablement parce qu'il est plus explicite. Y a-t-il une raison pour laquelle None
est autorisé?
None
est autorisé car numpy.newaxis
est simplement un alias pour None
.
In [1]: import numpy
In [2]: numpy.newaxis is None
Out[2]: True
Les auteurs l'ont probablement choisi car ils avaient besoin d'une constante pratique et None
était disponible.
Quant à savoir pourquoi vous devriez préférer newaxis
à None
: c'est principalement parce qu'il est plus explicite, et en partie parce qu'un jour les auteurs de numpy
pourraient le changer en autre chose que None
. (Ils n'ont pas l'intention de le faire et ne le feront probablement pas, mais il n'y a aucune bonne raison de préférer None
.)