【发布时间】:2014-05-15 17:27:12
【问题描述】:
我正在使用以下方法对包含 nan 值的数组求和:
for i in range(whatever):
a = *something different at each cycle*
b = np.nansum([b, a],axis=0)
#now calculate the average of b elements avoiding nan counts
(b 和 a 大小相同)。
现在,如您所见,这是迭代的,添加元素以在最后创建一个单独的 sum-array。
最后,我想计算最终b 数组中每个元素的平均值,当然,不包括计数中的nan 元素。
我发现的所有其他讨论都只考虑了两个数组,并且它们的元素的平均值是通过使用nanmean 获得的,但我认为这在这里是不可能的。
如果nansum 不是最好的方法,我也可以更改对元素求和的方式,但直到现在我都是这样做的。
那么,有没有一种简单的方法来获得从计数中排除nan 元素的最终平均值?
编辑:迭代进行了多次,而不仅仅是一次,使用a 数组(在示例中)在每个循环中更改。这就是为什么我无法使用与链接问题中相同的解决方案
【问题讨论】:
-
在这种情况下,OP 不会迭代求和。或者,我不知道如何将这两种情况简化为相同的解决方案。
-
你不能简单地跟踪 a 中 NaN 的数量,在循环后取 b 的总和除以非 NaN 元素的总数(
len(whatever) * a.size - totalNaNs)?跨度>