【问题标题】:Select a subset from 2D numpy array从二维 numpy 数组中选择一个子集
【发布时间】:2013-08-06 10:32:40
【问题描述】:

从二维 numpy 数组 Z 中,我想删除某些点,在索引 ix, iy
ix, iy 目前是 x 索引和相应 y 索引的顺序列表,就像这样:

ix = range(10)
iy = range(10,20,1)

所以我想将Z[0][10]Z[1][11] 等放入一个新的列表或数组中。

什么是最好的(阅读:最pythonic)这样做的方法?也许有更好的方法来找到这些指标,所以我得到[ix,iy], [ix+1,iy+1] 等数组?

我看过this question。我不知道如何将所选答案的列表理解语法用于二维。

【问题讨论】:

    标签: python arrays numpy list-comprehension


    【解决方案1】:

    现在无法测试,但 AFAIK 可以像 numpy 中的 Z[ix, iy] 一样完成。
    还有,不用写range(10,20,1),可以用range(10,20)

    【讨论】:

      【解决方案2】:
      [Z[y][x] for x, y in zip(ix, iy)]
      

      zip(ix, iy) 所做的是:创建一个元组列表[(ix[0], iy[0]), (ix[1], iy[1]), ...],即我们需要的每个元素的 x 和 y 索引。)

      【讨论】:

      • 这也可以,但我必须将索引翻转到 Z[x][y],这取决于您如何定义 x 轴。谢谢!
      猜你喜欢
      • 1970-01-01
      • 2022-11-26
      • 2020-12-18
      • 1970-01-01
      • 2014-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多