这让我挠了一会儿。我无意中使用None切片数组并获得错误以外的其他内容(我预计会出错)。相反,它返回一个具有额外维度的数组。
>>> import numpy
>>> a = numpy.arange(4).reshape(2,2)
>>> a
array([[0, 1],
[2, 3]])
>>> a[None]
array([[[0, 1],
[2, 3]]])
这种行为是故意还是副作用?如果是故意的,是否有一些理由呢?
答案 0 :(得分:37)
使用None等同于使用numpy.newaxis
,所以是的,这是故意的。事实上,它们是相同的,但是,当然,newaxis
更好地说明了它。
newaxis对象可用于所有切片操作,以创建长度为1的轴。 newaxis是'None'的别名,'None'可以代替这个使用相同的结果。