忽略指定值的 numpy 数组的平均值

2023-11-30

我有许多一维 numpy ndarray,其中包含给定节点和网络中所有其他节点之间的路径长度,我想计算其平均值。但事实上,如果两个节点之间不存在路径,则算法会针对给定连接返回值 2147483647,这一事实使问题变得复杂。如果我不处理这个值,它显然会严重夸大我的平均值,因为我的网络中典型的路径长度将介于 1 和 3 之间。

处理这个问题的一种选择是循环遍历所有数组的所有元素并替换2147483647 with NaN然后使用numpy.nanmean求平均值,但这可能不是最有效的方法。有没有一种方法可以用 numpy 计算平均值,忽略所有值2147483647?

我应该补充一点,我可以有多达数百万个数组,其中有数百万个值要平均,因此求平均值的任何性能提升都会产生真正的影响。


为什么不使用通常的 numpy 过滤呢?

m = my_array[my_array != 2147483647].mean()

顺便说一句,如果你真的想要速度,你的整个算法描述看起来肯定很幼稚,并且可以改进很多。

哦,我猜你正在计算平均值,因为你已经严格检查了基础分布是正态的,所以它意味着什么,不是吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

忽略指定值的 numpy 数组的平均值 的相关文章

随机推荐