我在numpy.ma中有一个蒙面数组,所有值都被掩盖了:
import numpy.ma as ma
arr = ma.array([3,4,10], mask=[True, True, True])
我希望此数组上的操作(例如ma.sum
)应返回masked
:
>>> ma.sum(arr) is ma.masked
>>> True
这确实是True
。
但是当我在同一个数组上使用ma.argmax()
时,结果不是ma.masked
,而是0
>>> ma.argmax(arr) is ma.masked
>>> False
>>> ma.argmax(arr)
>>> 0
有什么想法吗?这是一个错误,还是预期的行为?理想情况下,这将返回masked
。任何人都可以想到一个好的解决方法,或者我是愚蠢的......谢谢!
答案 0 :(得分:2)
>>> arr[ma.argmax(arr)]
masked
argmax
返回最大值的索引。您可以使用索引来获取值。 值被屏蔽。
由于所有值都被屏蔽,因此它们被视为相等(fill_value
),argmax
返回第一个索引(如the docs of numpy.argmax
所示)。
答案 1 :(得分:2)