The documentation says
Return a as an array masked where condition is True. Any masked values of a or condition are also masked in the output.
Thus, I expected ma2
below to have all values masked except for 0.0.
import numpy as np
rng = np.random.default_rng(123)
im3 = np.around(rng.normal(size=(3, 4, 5)), 1)
ma = np.ma.masked_array(im3, mask=im3 < 0)
ma2 = np.ma.masked_where(im3 > 0, im3)
However, what I have:
masked_array(
data=[[[-1.0, -0.4, --, --, --],
[--, -0.6, --, -0.3, -0.3],
[--, -1.5, --, -0.7, --],
[--, --, -0.7, -0.3, --]],
[[-2.2, --, --, --, --],
[-0.1, --, --, --, 0.0],
[-0.4, -1.2, --, -2.2, -0.4],
[--, --, --, --, -0.3]],
[[--, -1.3, --, -0.2, -0.7],
[-0.6, -0.1, -0.4, --, -0.7],
[0.0, 0.0, 0.0, --, -0.5],
[-0.6, -0.9, -1.5, --, --]]],
mask=[[[False, False, True, True, True],
[ True, False, True, False, False],
[ True, False, True, False, True],
[ True, True, False, False, True]],
[[False, True, True, True, True],
[False, True, True, True, False],
[False, False, True, False, False],
[ True, True, True, True, False]],
[[ True, False, True, False, False],
[False, False, False, True, False],
[False, False, False, True, False],
[False, False, False, True, True]]],
fill_value=1e+20)
Which is basically np.ma.masked_array(im3, mask=im3 > 0)
Am I misunderstanding something?