代码之家  ›  专栏  ›  技术社区  ›  Paul

使用无的numpy数组切片

  •  34
  • Paul  · 技术社区  · 16 年前

    这让我挠头了一会儿。我无意中用一个数组切片,得到了一个错误以外的东西(我预期会有一个错误)。相反,它返回一个具有额外维度的数组。

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

    这种行为是故意的还是副作用?如果是故意的,有什么理由吗?

    1 回复  |  直到 6 年前
        1
  •  37
  •   user2357112    6 年前

    使用“无”等同于使用 numpy.newaxis 是的,这是故意的。事实上,它们是一样的,但是,当然, newaxis 说得更清楚。

    The docs :

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

    A related SO question .