Ошибка значения Python Numpy: не удалось передать операнды вместе с формами (122,) (112,)

#python #numpy #scipy #syntax-error

#python #numpy #scipy #синтаксическая ошибка

Вопрос:

Я пытаюсь find_peaks из scipy.signal для обнаружения пиков и впадин в Python 3.7

 import pandas as pd
from scipy.signal import find_peaks
import numpy as np
import matplotlib.pyplot as plt

df = pd.read_excel('a44171.xlsx',header=None)
df.columns = ['II','PLETH','ABP']
ppg = df["PLETH"]

series = np.array(ppg)
fs = 1/60
t = np.array([t*fs for t in range(len(series))])

peak_idx, _ = find_peaks(series, distance=60)
valley_idx, _ = find_peaks(-series, distance=60)

timedelay = peak_idx - valley_idx
 

Я получаю следующую ошибку :

 ValueError: operands could not be broadcast together with shapes (122,) (112,)
 

Я думаю, есть некоторые недостающие пики, поэтому размеры разные.
Есть ли какой-либо код, который я мог бы добавить, чтобы исправить ошибку?

Пожалуйста, помогите! Я новичок в программировании на Python.

Комментарии:

1. Изучите данные и решите для себя, как вы хотите связать индексы пика и долины.

2. @hpaulj — Спасибо за ответ. Я должен удалить некоторые элементы из массива, чтобы размеры были одинаковыми. Есть ли какой-либо код, который я мог бы добавить для устранения ошибки?