用另一个 numpy 数组索引 numpy 数组

新手上路,请多包涵

假设我有

a = array([[1, 2],
           [3, 4]])

b = array([1,1])

我想在索引 a 中使用 b,即执行 a[b] 并得到 4 而不是 [[3, 4], [3, 4]]

我可能会做

a[tuple(b)]

有更好的方法吗?

谢谢

原文由 xster 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 411
2 个回答

根据 NumPy tutorial ,正确的做法是:

 a[tuple(b)]

原文由 JoshAdel 发布,翻译遵循 CC BY-SA 4.0 许可协议

假设您要访问 a 的子向量,n 个索引对存储在 b 中,如下所示:

 b = array([[0, 0],
       ...
       [1, 1]])

这可以按如下方式完成:

 a[b[:,0], b[:,1]]

对于单对索引向量,这会更改为 a[b[0],b[1]] ,但我猜 tuple 方法更易于阅读,因此更可取。

原文由 Brandlingo 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏