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

如何找到重叠的numpy数组的索引和最大值

如何找到重叠的numpy数组的索引和最大值

12345678_0001 2021-11-02 16:43:23
我有两个具有相同形状的 numpy 数组。一种带有值,一种带有“区域”。我需要在 valuearr 中找到与 zonearr 中的区域 3 重叠的最大值和值的索引:import numpy as npvaluearr = np.array([[10,11,12,13],                     [21,22,23,24],                     [31,32,33,34],                     [41,42,43,44]])zonearr = np.array([ [0,0,1,1],                     [0,0,1,1],                     [3,3,0,0],                     [3,3,0,0]])我想:valuearr[np.argwhere(zonearr==3)].max()44什么时候应该是42。为了获得索引,我尝试ind = np.unravel_index(np.argmax(valuearr[np.argwhere(zonearr==3)], axis=None), valuearr.shape)这当然不起作用,因为最大值不是 44 并且还会给出错误:builtins.ValueError:索引 19 超出大小为 16 的数组的范围
查看完整描述

2 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

请尝试以下代码

np.max(valuearr[np.where(zonearr==3)])

它从 中获取元素的索引zonearr,其中的值等于 '3'。接着,valuearr通过得到的索引得到最大元素。

要获取元素 42 的索引(根据您的示例),请使用以下代码:

np.argwhere(valuearr==np.max(valuearr[np.where(zonearr==3)]))


查看完整回答
反对 回复 2021-11-02
  • 2 回答
  • 0 关注
  • 205 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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