我有我的代码示例,我试图过滤一些数据。
import numpy as np
from scipy.signal import argrelextrema
data = np.arange(data)
index = argrelextrema(data,np.greater_equal)[0]
value = [data[i] for i in index if data[i] > 1000]
我的问题在于
if data[i] > 1000
值列表的元素少于索引列表。所以我从值列表中删除的元素我也想从索引列表中删除。但是索引列表只包含(惊奇)数据列表中的值索引。
答案 0 :(得分:0)
我很想创建一个新的过滤索引列表,与新值列表一起使用。
value = [data[i] for i in index if data[i] > 1000]
findex = [i for i in index if data[i] > 1000]
现在findex
包含一组1-1过滤索引,您可以将它们与值列表一起使用。最好同时解压缩两个变量,然后使用zip将它们分开:
mix = [(i,data[i]) for i in index if data[i] > 1000]
xim = [a for a in zip(*mix)]
indexes = list(xim[0])
values = list(xim[1])
同样,我确信这是一种更优雅的方式,但在这里你可以看到每个阶段发生了什么。