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

按索引获取多行的NumPy快速方法

  •  1
  • Amit  · 技术社区  · 4 年前

    (6, 100, 2) ,以及索引列表(例如: [1,2,3,1,5,0,0,0,1] )我想用这些索引中的数据得到一个numpy-ndarray(也就是说,输出形状是 (9, 100, 2) 第6、7、8行相互重复)。

    天真的解决方案:

    arr = []
    indexes = [1,2,3,1,5,0,0,0,1]
    for i in indexes:
      arr.append(data[i])
    arr = np.stack(arr)
    

    __getitem__ 以及 stack

    1 回复  |  直到 4 年前
        1
  •  1
  •   willeM_ Van Onsem    4 年前

    你可以使用订阅。所以如果 data indexes 是索引列表,可以使用以下命令检索结果:

    result = data[indexes]