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

2024-05-15 04:20:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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])

其中...表示中间的许多附加数字,数组的长度可能不一定相同。我想基本上平均我的两个数据集(通量值),这将是很容易的,如果波长尺度是完全相同的。但既然不是,我不确定最好的方法。最后我想用一个波长数组和一个通量数组来封装我的两个数据集的平均值,但是当然,这些值只能在相同(或足够接近)的波长上平均。什么是Python式的方法?你知道吗


Tags: 数据方法importnumpy示例asnp数字
1条回答
网友
1楼 · 发布于 2024-05-15 04:20:54

从科学的角度看,你的问题有点开放。如果两个数据集几乎完全对应于相同的底层函数,那么您所要做的只是使完全有意义,这样噪声就可以忽略不计。你知道吗

不管怎样,首先要做的是将两个数据集映射到一个公共波长数组。为此,您需要interpolate将两组数据放在您选择的1d波长网格上。同样,如果数据太嘈杂,那么插值就没有多大意义。但是如果数据集是平滑的,那么即使使用linear interpolation也可以逃脱。一旦将两个数据集插值到一个公共波长网格上,就可以简单地取它们的平均值。请注意,只有当采样密度足够大,使得光谱中的任何较大特征都能被两个单独的数据集很好地映射时,这种方法才会起作用。你知道吗

如果你的数据太过嘈杂,那么你能做的唯一合理的事情也许就是把数据集的并集,和fit a function从一个有根据的猜测带到联合谱上。为此,您必须非常清楚您的数据应该是什么样子,但我认为在这种情况下,没有通用的解决方案可以帮助您,而不是在数据中引入不受控制的工件。你知道吗

相关问题 更多 >

    热门问题