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

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

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

有帮助吗?

解决方案

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

文档

  

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

相关的SO问题

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top