gpt4 book ai didi

python - 使用间隔屏蔽 numpy 数组

转载 作者:太空宇宙 更新时间:2023-11-03 10:47:30 24 4
gpt4 key购买 nike

我正在尝试使用具有范围的掩码文件来屏蔽 numpy 数组的某些部分,但我不知道如何有效地这样做。我有一个包含数千个值的两个数组(时间和数据),然后是一个包含开始和停止时间的掩码文件。我希望有一个简单的时间来屏蔽任何起始值和终止值之间的数组值。下面是一些伪代码,可帮助概念化我正在尝试做的事情。

# the mask file is two-column with start time and stop time
mask = np.loadtxt(maskfile)

time, data = np.loadtxt(datafile, unpack=True)

data = data[(time > mask[:,0]) & (time < mask[:,1])]

显然,这行不通,因为时间和掩码的长度不同。

这样的事情可能吗?任何帮助将不胜感激!

最佳答案

给定一个数组:

In [1]: x = np.arange(100).reshape(10, 10)

和下限和上限的第二个数组(lu),

In [2]: y = np.array([[6, 11], [41, 47], [85, 98]])

遍历边界数组并根据边界(重新)屏蔽数据数组

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)

关于python - 使用间隔屏蔽 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21918161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com