Анализ четвёрки Я делаю выходы 5 полей данных, каждый из которых я собрал в массивы с 1-м номером: freq bin #, амплитуда, длина волны, нормализованная амплитуда,% мощности ,Как структурировать несколько массивов python для сортировки
Как лучше структурировать данные, чтобы сортировать по нисходящей амплитуде?
При тестировании с помощью только одного поля данных, я был в состоянии использовать Dict следующим образом:
fourier_tuples = zip(range(len(fourier)), fourier)
fourier_map = dict(fourier_tuples)
import operator
fourier_sorted = sorted(fourier_map.items(), key=operator.itemgetter(1))
fourier_sorted = np.argsort(-fourier)[:3]
Моя цель в том, чтобы добавить другие массивы в линию 1, но это не работает, так как dicts принимайте только 2 условия. (Вот почему this post не решает мою проблему.)
Отступаем назад, это разумный подход, или есть ли лучшие способы объединения & сортировать отдельные массивы? В конечном счете, я хочу взять значения данных из трех верхних частот и связанных с ними других данных и записать их в выходной файл данных.
Вот отрывок из моих данных:
fourier = np.array([1.77635684e-14, 4.49872050e+01, 1.05094837e+01, 8.24322470e+00, 2.36715913e+01])
freqs = np.array([0. , 0.00246951, 0.00493902, 0.00740854, 0.00987805])
wavelengths = np.array([inf, 404.93827165, 202.46913583, 134.97942388, 101.23456791])
amps = np.array([4.33257766e-16, 1.09724890e+00, 2.56328871e-01, 2.01054261e-01, 5.77355886e-01])
powers% = np.array([4.8508237956526163e-32, 0.31112370227749603, 0.016979224022185751, 0.010445983875848858, 0.086141014686372669])
Последние 4 массивов и другие поля, соответствующие «Фурье». (Фактическая длина массива равна 42, но для простоты уменьшена до 5).
Не могли бы вы добавить данные ?! – Cleb
Массивы? Вы имеете в виду * списки *? Почему вы используете 'dict', а затем просто вызываете' items'? Это не имеет никакого смысла ... –
is 'zip (range (len (fourier)), fourier)' short для 'enumerate (fourier)'? –