2009-09-10 10 views
21

Das hat mich für eine Weile den Kopf kratzen. Ich habe unbeabsichtigt ein Array mit None geschnitten und etwas anderes als einen Fehler bekommen (ich habe einen Fehler erwartet). Stattdessen wird ein Array mit einer zusätzlichen Dimension zurückgegeben.NumPy Array Slice mit keine

>>> import numpy 
>>> a = numpy.arange(4).reshape(2,2) 
>>> a 
array([[0, 1], 
     [2, 3]]) 
>>> a[None] 
array([[[0, 1], 
     [2, 3]]]) 

Ist dieses Verhalten beabsichtigt oder ein Nebeneffekt? Wenn es absichtlich ist, gibt es einige Gründe dafür?

Antwort

28

Die Verwendung von None entspricht der Verwendung von numpy.newaxis, also ist es beabsichtigt. In der Tat sind sie das gleiche, aber natürlich newaxis buchstabiert es besser.

The docs

A related SO question.