动机:在一个数值列表中,我试图找到最小值的索引——附带条件是,该值必须低于某个树型。下面是一个示例,其中所有内容都按预期工作
import numpy as np
a = np.array([1, 5, -4])
threshold = 3
b = np.ma.MaskedArray(a, a >= threshold)
np.ma.argmin(b) # returns 2, since a[2] is -4 which is the smallest element < 3
这里是一个np.ma.argmin
做了一些意想不到的事情的例子:
a = np.array([4, 5])
threshold = 3
b = np.ma.MaskedArray(a, a >= threshold)
np.ma.argmin(b) # returns 0, expected a None etc. since there is no element < 3
这是为什么?我如何使它返回None
?注意:设置fill_value = None
没有帮助
argmin
的代码是:它用适当的填充值填充它(对于int-dtype,它是最大的整数),然后执行一个规则数组
argmin
。如果所有值都被屏蔽,那么所有值都是这个max,第一个值是argmin
b.min()
返回一个特殊的ma
值ma.MaskedConstant
。因此,您可能需要对argmin
调用进行某种类型的测试,以测试该值。我没有立即看到一个np.ma.is...
函数来测试这一点。但文件中可能有一些东西相关问题 更多 >
编程相关推荐