我是python编程的新手,如果我的问题太基础,请原谅我。但我试图使用masked_array计算三个数组的平均值,以产生第三个数组,而不使用值小于零的元素。使用以下步骤:
onAfterRendering
我认为(来自文档)如果在具有掩码值的数组上使用numpy数组均值函数,则在计算均值时不会考虑它们(掩码值)。我希望结果是
setTimeout
请问,是否有人提供了一些关于如何使用numpy.ma.masked_array存档的提示?
答案 0 :(得分:1)
问题是np.array(d)
不会创建蒙版数组。当a
列表中的数组组装成更大(未屏蔽)的数组时,d
中的掩码会丢失。
解决此问题的一种方法是替换它:
result = np.array(d).mean(axis=0)
与
result = masked_array(d).mean(axis=0)
E.g:
In [27]: result = masked_array(d).mean(axis=0)
In [28]: result
Out[28]:
masked_array(data =
[[2.5 3.5 3.0 4.5]
[5.666666666666667 1.3333333333333333 4.333333333333333 2.3333333333333335]
[9.333333333333334 5.0 2.0 3.6666666666666665]
[1.5999999999999999 5.003333333333333 1.3333333333333333
1.7333333333333334]],
mask =
[[False False False False]
[False False False False]
[False False False False]
[False False False False]],
fill_value = 1e+20)