如何解决使用来自另一个2d数组的索引来计算2D NumPy数组中非零值的平均值
我想使用另一个2d数组的索引来计算2D数组中非零值的平均值,并将这些值返回到相同形状的数组。例如,
输入数组“ iarray”:
[0,1,8],
[5,0,2],
[10,4,0]
索引数组“ iindex”:
[1,1,2],
[1,1,2],
[3,3,2]
输出数组('istat')应为:
[3,3,5],
[3,3,5],
[7,7,5]
我已经使用scipy.ndimage.mean尝试使用条件语句来忽略零,但这似乎返回了布尔值的均值,所以我知道这是错误的:
iarray = np.array([[0,1,8],[5,2],[10,4,0]])
iindex = np.array([[1,[1,[3,3,2]])
istat = scipy.ndimage.mean(iarray > 0,labels=iindex,index = iindex)
[0.5,0.5,0.67],
[0.5,0.5,0.67],
[1,1,0.67]
我也尝试过在输入数组中为零插入NaN,但是如果在索引范围内找到任何NaN,它将为整个索引返回'nan':
iarray = np.array([[0,2]])
iarray[iarray<=0.0] = np.NaN
istat = scipy.ndimage.mean(iarray,index = iindex)
[nan,nan,nan],
[nan,nan,nan],
[7,7,nan]
我找不到带有scipy.ndimage.mean的选项来忽略零或空值。是我缺少了什么还是scipy.ndimage受限制,我应该为我的计算寻找替代解决方案吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。