python - Python:如何在某些索引位置获取多维数组的值?
问题描述
如果我有一个多维 numpy 数组,例如:
a = [[0 1 2]
[3 4 5]
[6 7 8]]
如何一步获得某些索引位置的值?例如,如果要定义成对的索引,例如:
indices = [[0,0], [1,1], [2,2]]
我想:
a[indices] = [0, 4, 8]
请注意,这确实适用于一维数组(Python:如何在某些索引位置获取数组的值?),但我看不到如何让它在多个维度上工作。我正在使用 Python 3.7。
解决方案
改编自 Prasanna 的评论
a = [[0 1 2]
[3 4 5]
[6 7 8]]
indices = [[0,0], [1,1], [2,2]]
a[indices] = [a[pair[0]][pair[1]] for pair in indices]
这通过使用 for each 循环,遍历索引数组中的每一对,然后将每个给定索引处的值添加到最终结果中来工作。
pair
是索引数组中的每一对,并表示 中的每一索引对indices
。在您的示例中,它将[0,0]
在第一次迭代、[1,1]
第二次和[2,2]
第三次迭代中。
推荐阅读
- python - 将颜色条添加到散点图
- postgresql - 致命:无法打开文件“base/13128/1259”:只读文件系统
- c - Xcode 11 - 打印文本中变量的颜色突出显示(C 语言)
- haskell - 简化 Haskell 中的嵌套列表输入
- node.js - 如何使用节点 js 和 aws dynamo db 进行子数组分页
- c++ - 如何在 C++ 中有效地检测人脸的模糊率?
- android - Firebase 脸书登录
- javascript - Fullcalendar.io CSS 在 Rails 6 应用程序中不起作用
- c++ - CRYPTO_num_locks() 如何返回所需的锁数?
- c - 动态分配结构向量