【问题标题】:python numpy access elements in 1d array with 2 indicespython numpy访问具有2个索引的一维数组中的元素
【发布时间】:2021-05-27 15:12:09
【问题描述】:

我正在编写一个函数,它接收坐标列表 p[x,y] 并执行一些计算。我想使用 numpy 索引访问 x 和 y 的列表:

p = np.array([[1,2],[3,4],[5,6]])
x = p[:,0]
array([1, 3, 5])

但是,当 p 只包含 1 行坐标时,即 1d 数组,2 索引会导致错误。

p = np.array([1,2])
x = p[:,0]
IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed

我希望它从数组中返回一个值。 有没有一种索引方法可以同时适用于 1d 和 2d 数组?

【问题讨论】:

    标签: python arrays numpy indexing


    【解决方案1】:

    如果您想指定可变数量的维度(包括无),请使用 ... 而不是 :

    In [7]: p = np.array([[1,2],[3,4],[5,6]])
    In [8]: p[...,0]
    Out[8]: array([1, 3, 5])
    In [9]: p = np.array([1,2])
    In [10]: p[...,0]
    Out[10]: array(1)
    

    【讨论】:

      【解决方案2】:

      我不这么认为。总是像这样创建一个二维数组会起作用吗?

      p = np.array([[1,2], ])
      

      或者,您可以查找形状并仅在它是 2d 时以这种方式索引。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-08
        • 2019-01-09
        • 2020-01-06
        • 1970-01-01
        • 1970-01-01
        • 2017-12-16
        相关资源
        最近更新 更多