使用None的NumPy数组切片

时间:2009-09-10 23:45:08

标签: python arrays numpy

这让我挠了一会儿。我无意中使用None切片数组并获得错误以外的其他内容(我预计会出错)。相反,它返回一个具有额外维度的数组。

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

这种行为是故意还是副作用?如果是故意的,是否有一些理由呢?

1 个答案:

答案 0 :(得分:37)

使用None等同于使用numpy.newaxis,所以是的,这是故意的。事实上,它们是相同的,但是,当然,newaxis更好地说明了它。

The docs

  

newaxis对象可用于所有切片操作,以创建长度为1的轴。 newaxis是'None'的别名,'None'可以代替这个使用相同的结果。

A related SO question