Почему я не могу найти индекс максимального значения в моем массиве спектрограмм? - PullRequest
0 голосов
/ 06 февраля 2020

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

Это мой входной код:

tindex=np.where((t-tprior>0)&(t-tprior<2))
tindex=np.array(tindex)

findex=np.where(freqs==72)
findex=int(findex[0])


echopeak = np.amax(-np.real(Xsum[findex,tindex]))
print(echopeak)

peakindex = np.where(Xsum == echopeak)
print(peakindex)
print(Xsum[peakindex])

print(abs(Xsum[findex,tindex]-echopeak)<=1e44)

И это вывод:

5.860244612305991e+44
(array([], dtype=int64), array([], dtype=int64))
[]
[[False False False False False False False False False False False False
  False False False False False False False False False False False False
  False False False False False False False]]

Очевидно, что поскольку значение было возвращено, оно существует.

Я поочередно пытался:

peakindex = (abs(Xsum - echopeak) <= 1e-12) #with numbers ranging all the way up to 1e44
peakindex = (Xsum[findex,tindex] < echopeak+1e44)&(Xsum[findex,tindex] > echopeak-1e44)

Ничто не возвращает индекс максимума. Что я делаю не так?

1 Ответ

0 голосов
/ 06 февраля 2020

Функция np.argmax возвращает индекс максимального значения в массиве:

peakindex = np.argmax(Xsum)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...