給定一個陣列:
In [1]: x = np.arange(100).reshape(10, 10)
和低的第二陣列和上界(l
,u
)
In [2]: y = np.array([[6, 11], [41, 47], [85, 98]])
迭代通過bounds陣列和(重新)掩模數據陣列根據邊界
In [3]: for l, u in y:
....: x = np.ma.masked_where((x > l) & (x < u), x)
....:
In [4]: x
Out[4]:
masked_array(data =
[[0 1 2 3 4 5 6 -- -- --]
[-- 11 12 13 14 15 16 17 18 19]
[20 21 22 23 24 25 26 27 28 29]
[30 31 32 33 34 35 36 37 38 39]
[40 41 -- -- -- -- -- 47 48 49]
[50 51 52 53 54 55 56 57 58 59]
[60 61 62 63 64 65 66 67 68 69]
[70 71 72 73 74 75 76 77 78 79]
[80 81 82 83 84 85 -- -- -- --]
[-- -- -- -- -- -- -- -- 98 99]],
mask =
[[False False False False False False False True True True]
[ True False False False False False False False False False]
[False False False False False False False False False False]
[False False False False False False False False False False]
[False False True True True True True False False False]
[False False False False False False False False False False]
[False False False False False False False False False False]
[False False False False False False False False False False]
[False False False False False False True True True True]
[ True True True True True True True True False False]],
fill_value = 999999)
謝謝比爾。我試圖避免這樣做,因爲我希望有一個內置的Numpy操作。無論如何,感謝您的確認! – ionick