【问题标题】:Numpy: Select elements from arrays where difference between the current and the previous element is smallNumpy:从当前元素和前一个元素之间差异很小的数组中选择元素
【发布时间】:2022-01-16 16:34:22
【问题描述】:

我有两个 numpy 1 维数组 timesvalues,它们的长度都是 712 个条目。我想切掉所有条目,除了第一个,当前时间与前一个时间之间的差异小于 9。

我有一个真值表我想映射到这两个数组上。

>>> print((times[1:] - times[:-1]) < 9)
[False False False False False False False False  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  True False False  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 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 False False False False False False  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 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]

我如何切出所有时间和值的元素,其中这是真的?有人告诉我使用 numpy 数组的切片功能。示例:

>>> my_list = np.array([12, 15, 3, 5, 19, 4])
>>> print(my_list[my_list%2 == 0])
[12  4]

【问题讨论】:

    标签: python-3.x numpy numpy-ndarray


    【解决方案1】:

    Stackoverflow 显然是我的橡皮鸭。

    numpy 切片已经按照我的意愿进行,选择列表的值,其中条目为“True”。我只需要将原始数组切片为长度:

    ntimes = times[1:]
    print(ntimes[(times[1:] - times[:-1]) < 9])
    
    nvals = vals[1:]
    print(nvals[(times[1:] - times[:-1]) < 9])
    

    【讨论】: