在Python中平均两个具有不同底层x尺度的数组

在Python中平均两个具有不同底层x尺度的数组,python,arrays,python-3.x,numpy,average,Python,Arrays,Python 3.x,Numpy,Average,我在Python中有两个不同的x和y数据集,其中x是波长,y是通量。例如: import numpy as np wv_arr_1 = np.array([5564.0641521, 5566.43488632, ..., 8401.83301412]) flux_arr_1 = np.array([2.7731672e-15, 2.7822637e-15, ..., 8.0981220e-16]) wv_arr_2 = np.array([5109.3259116, 5111.3446778

我在Python中有两个不同的x和y数据集,其中x是波长,y是通量。例如:

import numpy as np
wv_arr_1 = np.array([5564.0641521, 5566.43488632, ..., 8401.83301412])
flux_arr_1 = np.array([2.7731672e-15, 2.7822637e-15, ..., 8.0981220e-16])

wv_arr_2 = np.array([5109.3259116, 5111.34467782, ..., 7529.82661321])
flux_arr_2 = np.array([2.6537110e-15, 3.7101513e-15, ..., 2.9433518e-15])

其中,
表示中间的许多附加数字,数组的长度可能不一定相同。我想基本上平均我的两个数据集(通量值),如果波长尺度完全相同,这将很容易。但因为他们不是,我不确定最好的方法。我希望最终得到一个波长数组和一个通量数组,它们封装了我的两个数据集的平均值,但当然,这些值只能在相同(或足够接近)的波长上进行平均。什么是蟒蛇式的方法呢?

从科学的角度来看,你的问题有点开放。只有当两个数据集几乎完全对应于相同的底层函数时,您想要做的事情才完全有意义,这样噪声就可以忽略不计

无论如何,您可以做的第一件事是将两个数据集映射到一个公共波长数组。为此,您需要在您选择的1d波长网格上对这两组数据进行分析。同样,如果数据太嘈杂,那么插值就没有多大意义。但是,如果数据集是平滑的,那么您甚至可以不受影响。一旦将两个数据集插值到一个共同的波长网格上,就可以轻松地取它们的平均值。请注意,只有当采样密度足够大,以至于光谱中的任何较大特征都能被两个单独的数据集很好地映射时,这才有效


如果你的数据太过嘈杂,也许你能做的唯一合理的事情就是将数据集合并,并从一个有根据的猜测到联合谱。为此,您必须对数据应该是什么样子有一个非常好的想法,但我认为在这种情况下,没有一个通用的解决方案可以帮助您,除非在您的数据中引入不受控制的工件。

您需要向人们解释您所说的完全相同的比例和范围是什么意思“值只能在相同波长下平均”