gpt4 book ai didi

python - 使用 Python 中的预定义索引对数组重新采样

转载 作者:行者123 更新时间:2023-11-28 21:21:25 29 4
gpt4 key购买 nike

我有一组数字,每个数字对应一个事件和事件发生的时间。例如,

ev=[0, 14, 23, 53, 3]

time=[0, 0.4, 0.75, 0.9, 1.1]

将 ev 与时间想象成一个(右连续)阶跃函数,它会根据时间数组中的值更改值。现在通过重采样,我的意思是定义一个新的时间值数组并在这些时间查找 ev 函数的值。我想在均匀间隔的时间数组下对变量 ev 进行重新采样。比如t1是一个等距数组,ev1就是我需要的对应的事件列表。

t1=[0, 0.2, 0.4, 0.6, 0.8, 1, 1.2]

ev1=[0, 0, 14, 14, 23, 53, 3]

是否可以在 Python 中对事件数组进行这样的重采样?有直接命令吗?谢谢。

最佳答案

您可以使用 np.searchsorted使用 side='right 查找 time 中小于新时间的最后一项的索引,然后使用它从 ev 中获取值 数组:

>>> np.take(ev, np.searchsorted(time, t1, side='right')-1)
array([ 0, 0, 14, 14, 23, 53, 3])

如果您先将 ev 转换为 numpy 数组,花哨的 indecing 可能更具可读性:

>>> ev = np.array(ev)
>>> idx = np.searchsorted(time, t1, side='right')-1
>>> ev[idx]
array([ 0, 0, 14, 14, 23, 53, 3])

关于python - 使用 Python 中的预定义索引对数组重新采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21463264/

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