为了账号安全,请及时绑定邮箱和手机立即绑定

Python:如何在某些索引位置获取多维数组的值?

Python:如何在某些索引位置获取多维数组的值?

紫衣仙女 2022-07-19 10:28:31
如果我有一个多维 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。
查看完整描述

2 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

正如您链接的一维答案一样,您可以在二维中优雅地执行此操作numpy:


a = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])

rows, columns = zip([0, 0], [1, 1], [2, 2])

print(a[rows, columns])

的输出print将是:


array([0, 4, 8])


查看完整回答
反对 回复 2022-07-19
?
烙印99

TA贡献1829条经验 获得超13个赞

改编自 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]第三次迭代中。


查看完整回答
反对 回复 2022-07-19
  • 2 回答
  • 0 关注
  • 213 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号