在python中通过循环检查数组数据

时间:2018-06-01 15:49:14

标签: python-2.7 loops

我正在开发一个循环,它将逐步检查我的数据。我的数据如下: enter image description here

以下是每行约266336条记录。 我需要的是一个可以找到这些峰值的代码。

以下是我希望填写的一些条件:

  • 如果下一个记录低于之前的记录(打印或保存)

依此类推,直到数组结束。请记住,我的数据具有正数负数,因此必须有其他论点,如果我在负数上寻找峰值,则下一个数字必须高于之前的数字。

到目前为止,这是我的代码,很好的一部分:

Bx = data.data[0,]
By = data.data[1,]
N = len(Bx)
M = len(By)
time = np.linspace(0,300,N)
time2 = np.linspace(0,300,M)
BxTime = time[100:-100]
ByTime = time2[100:-100]

Bxfft = (Bx[100:-100])
Byfft = (By[100:-100])
Sampling = float(266336) / 300
HalfSampling = float(Sampling) / 2
Wn = float(1) / HalfSampling
b, a = signal.butter(3, Wn, 'high')
BxHPF = signal.filtfilt(b, a, Bxfft)
ByHPF = signal.filtfilt(b, a, Byfft)

# Bandstop Filter
def butter_bandstop_filter(data, lowcut, highcut, fs, order):
    nyq = 0.5 * fs
    low = lowcut / nyq
    high = highcut / nyq

    i, u = butter(order, [low, high], btype='bandstop')
    y = lfilter(i, u, data)
    return y

ax2 = plt.subplot(212)
plt.plot(BxTime, butter_bandstop_filter(BxHPF, 49.9, 50.1, float(266336)/300, 3), label='Channel 1', color='r',
         linewidth=0.5, linestyle="-")
plt.plot(ByTime, butter_bandstop_filter(ByHPF, 49.9, 50.1, float(266336)/300, 3), label='Channel 1', color='b',
        linewidth=0.5, linestyle="-")

这是我试图满足我的条件,但它不起作用。

for search in butter_bandstop_filter(BxHPF, 49.9, 50.1, float(266336)/300, 3):
    if search >= search and search < search:
        print search

0 个答案:

没有答案