data = np.array(csv_data) signals = [] count = 1 peaks = biosppy.signals.ecg.christov_segmenter(signal=data, sampling_rate = 200)[0] for i in (peaks[1:-1]): diff1 = abs(peaks[count - 1] - i) diff2 = abs(peaks[count + 1]- i) x = peaks[count - 1] + diff1//2 y = peaks[count + 1] - diff2//2 signal = data[x:y] signals.append(signal) count += 1 return signals