NumPy tranche de tableau en utilisant Aucun
Question
Cela m'a fait me gratter la tête pendant un moment. Je découpais involontairement un tableau avec None et obtenais autre chose qu'une erreur (je m'attendais à une erreur). Au lieu de cela, il retourne un tableau avec une dimension supplémentaire.
>>> import numpy
>>> a = numpy.arange(4).reshape(2,2)
>>> a
array([[0, 1],
[2, 3]])
>>> a[None]
array([[[0, 1],
[2, 3]]])
Ce comportement est-il intentionnel ou at-il un effet secondaire? Si cela est intentionnel, y a-t-il une raison à cela?
La solution
Utiliser Aucun équivaut à utiliser numpy.newaxis
, donc oui, c'est intentionnel. En fait, c’est la même chose, mais, bien sûr, newaxis
le dit mieux.
L'objet newaxis peut être utilisé dans toutes les opérations de découpage pour créer un axe de longueur un. newaxis est un alias pour "None" et "None" peut être utilisé à la place avec le même résultat.