#python #python-3.x
#python #python-3.x
Вопрос:
В настоящее время я пытаюсь определить частоту этого графика зависимости положения от времени:
где временные и позиционные наборы данных представляют собой списки с плавающей точкой. Я пытался использовать scipy.signal.find_peaks
imported as fp
, но когда я запускаю этот код:
peaks,_ = fp(pos)
peak_times = []
for i in range(len(peaks)):
peak_times.append(t[i])
peak_dists = [current-next for (current,next) in zip(peak_times,peak_times[1:])]
approx_freq = sum(peak_dists)/len(peak_dists)
return approx_freq
Я получаю ошибку типа: typeError: only integer scalar arrays can be converted to a scalar index
Что происходит не так? И как я могу это исправить?
Комментарии:
1. Где именно вы получаете ошибку?
2. Пожалуйста, проверьте мой ответ ниже и дайте мне знать, если это вам поможет.
Ответ №1:
Я заметил несколько ошибок в вашем коде. Вот предлагаемые исправления:
peaks,_ = fp(pos)
peak_times = []
for i in peaks: # notice correction here! No range or len needed.
peak_times.append(t[i])
peak_dists = [next-current for (current,next) in zip(peak_times,peak_times[1:])] # swapped next with current for positive result
approx_freq = 1/(sum(peak_dists)/len(peak_dists)) # take the inverse of what you did before
Удачи!