gpt4 book ai didi

python - 有没有办法矢量化将均值函数应用于 ndarray 中的屏蔽区域?

转载 作者:行者123 更新时间:2023-12-04 09:29:58 24 4
gpt4 key购买 nike

假设我有两个 ndarray 定义如下:

import numpy as np
mask = np.array([[1,1],[1,2]])
values = np.array([[1., 3.],[2., 2.]])
我的目标是根据 mask 中的整数表示的掩码区域计算值的平均值。 .当然,我会使用 for 循环:
out = np.zeros(len(np.unique(mask)))
for j,i in enumerate(np.unique(mask)):
out[j] = np.nanmean(values[mask==i])
但是,对于大型多维数组,这种序列化解决方案变得非常缓慢。有没有办法有效地矢量化这个操作?提前谢谢你的帮助!

最佳答案

您可以使用 np.bincount :

unq,inv,cnt = np.unique(mask,return_inverse=1,return_counts=1)
np.bincount(inv,values.ravel())/cnt
# array([2., 2.])

关于python - 有没有办法矢量化将均值函数应用于 ndarray 中的屏蔽区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62885793/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com