首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何根据数字列表将一个numpy数组拆分为多个子数组?

如何根据数字列表将一个numpy数组拆分为多个子数组?
EN

Stack Overflow用户
提问于 2018-08-08 01:01:52
回答 2查看 227关注 0票数 0

我有一个保存时间序列数据的numpy.array,其中data[:,0]是时间,其他列是一些测量值。我还有一个list_of_peaks,它是数据中有一些有趣的地方的时间列表。

我的目标是为list_of_peaks中的每个点计算一个特定的度量,该度量基于data中比任何其他峰值更接近它的点,也就是说,我希望在list_of_peaks中的每个点之间划分data

我目前(非常慢)的算法是:

代码语言:javascript
运行
复制
def measure(d,t_m,t_p):
    radius = d[(d[:,0] > t_m)* (d[:,0] < t_p)]
    return np.max(radius) - np.min(radius)

list_of_measures = []
for i in range(len(list_of_peaks)):
    if i == 0:
        list_of_measures.append(measure(data,data[0,0],(list_of_peaks[i+1] - list_of_peaks[i])/2+list_of_peaks[i]))
    elif i == len(list_of_peaks) - 1:
        list_of_measures.append(measure(data,list_of_peaks[i] - (list_of_peaks[i]-list_of_peaks[i-1])/2,data[-1,0]))
    else:
        list_of_measures.append(measure(data,list_of_peaks[i] - (list_of_peaks[i]-list_of_peaks[i-1])/2,(list_of_peaks[i+1] - list_of_peaks[i])/2+list_of_peaks[i]))

我还没有找到任何好的内置numpy函数来满足我的目的,但我非常确定这可以做得更好,我只是不认为该如何做。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51731976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档