gpt4 book ai didi

python - 取带有掩码元素的 numpy ndarray 的平均值

转载 作者:行者123 更新时间:2023-12-01 01:31:13 26 4
gpt4 key购买 nike

我有一个从实验中获取的 MxN 值数组。其中一些值无效并设置为 0 以指示此类情况。我可以使用构建有效/无效值的掩码

mask = (mat1 == 0) & (mat2 == 0)

生成一个 MxN bool 数组。应该注意的是,屏蔽位置并不完全遵循矩阵的列或行 - 因此简单地裁剪矩阵不是一个选择。

现在,我想沿数组的一个轴取平均值(例如,最终得到一个 1xN 数组),同时在平均值计算中排除那些无效值。我直觉地认为

 np.mean(mat1[mask],axis=1)

应该这样做,但是 mat1[mask] 操作生成一个一维数组,它似乎只是 mask 为 true 的元素 - 这在以下情况下没有帮助我只想要数组一维的平均值。

有没有“python-esque”或numpy的方法来做到这一点?我想我可以使用掩码将掩码元素设置为 NaN 并使用 np.nanmean - 但这仍然感觉有点笨拙。有没有办法“干净”地做到这一点?

最佳答案

我认为最好的方法是:

masked = np.ma.masked_where(mat1 == 0 && mat2 == 0, array_to_mask)

然后用

取平均值
masked.mean(axis=1)

关于python - 取带有掩码元素的 numpy ndarray 的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52843140/

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