在 numpy 中是否有像 masked_less 这样的 masked_max?
Is there a masked_max like masked_less in numpy?
等价于什么
masked_arr = np.ma.masked_max(arr, axis=(-1,-2))
获得
[[[False True]
[False False]]]
# or an equivalent with -- and max value in place
来自
[[[ 0.5488135 0.71518937]
[ 0.60276338 0.54488318]]]
我试过了
np.ma.max(arr, axis=(-1,-2))
但它 returns 只是一个类似于 np.max 的值,而不是掩码。我该怎么做?
就像numpy.ma.masked_less
一样,还有一个numpy.ma.masked_greater
。
但是你想要numpy.ma.masked_greater_equal
import numpy
x = numpy.array([
[0.54881350, 0.71518937],
[0.60276338, 0.54488318]
])
mask = numpy.ma.masked_greater_equal(x, x.max()).mask
print(mask)
我得到:
[[False True]
[False False]]
我认为你甚至不需要为此使用 np.ma
,你可以这样做
mask = np.isclose(x, x.max((-1, -2), keepdims = True))
请记住使用 np.isclose
而不是 ==
作为浮点数。然而,
mask = x == x.max((-1, -2), keepdims = True)
如果您有整数或其他 ==
是安全的类型,则可以使用。
masked_arr = np.ma.masked_max(arr, axis=(-1,-2))
获得
[[[False True]
[False False]]]
# or an equivalent with -- and max value in place
来自
[[[ 0.5488135 0.71518937]
[ 0.60276338 0.54488318]]]
我试过了
np.ma.max(arr, axis=(-1,-2))
但它 returns 只是一个类似于 np.max 的值,而不是掩码。我该怎么做?
就像numpy.ma.masked_less
一样,还有一个numpy.ma.masked_greater
。
但是你想要numpy.ma.masked_greater_equal
import numpy
x = numpy.array([
[0.54881350, 0.71518937],
[0.60276338, 0.54488318]
])
mask = numpy.ma.masked_greater_equal(x, x.max()).mask
print(mask)
我得到:
[[False True]
[False False]]
我认为你甚至不需要为此使用 np.ma
,你可以这样做
mask = np.isclose(x, x.max((-1, -2), keepdims = True))
请记住使用 np.isclose
而不是 ==
作为浮点数。然而,
mask = x == x.max((-1, -2), keepdims = True)
如果您有整数或其他 ==
是安全的类型,则可以使用。