我做的一个傅立叶分析会输出5个数据字段,我已经将其中的每个数据字段收集到一维numpy数组中:freq bin#,幅度,波长,归一化幅度,%功率。如何构建多个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根,但这既然类型的字典不起作用只接受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(fourier)),fourier)'枚举(fourier)''的简称? –