フーリエ解析私は1次元のnumpy配列に集めた5つのデータフィールドを出力しています:周波数ビン#、振幅、波長、正規化振幅、%出力。並べ替え用に複数のPython配列を構成する方法
データを整理して振幅を降順でソートするにはどうすればよいですか?ただ一つのデータフィールドでのテスト、私は次のように辞書を使用することができました
:
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は私の問題を解決しません。
これは妥当なアプローチですか、それとも&別々の配列を組み合わせる方が良いですか?最終的には、上位3つの周波数と関連する他のデータからデータ値を取り出し、それらを出力データファイルに書きたいと考えています。
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'を呼び出すのですか?それは意味をなさない... –
は 'zip(範囲(len(フーリエ))、フーリエ)' '列挙(フーリエ)'の略ですか? –