Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Numpy-用平均重磨重磨_Python_Numpy_Average_Weighted Average - Fatal编程技术网

Python Numpy-用平均重磨重磨

Python Numpy-用平均重磨重磨,python,numpy,average,weighted-average,Python,Numpy,Average,Weighted Average,我正在尝试实现一些类似于python中关于重新填充的内容。那篇文章中的问题涉及到重新填充数组,这样一个输出单元格将包含所有对它有贡献的输入单元格的平均值。问题是每个输入单元(我认为)只对一个输出单元起作用——也就是说,没有真正的方法来解释一个输入单元与两个输出单元重叠的情况 我想知道是否有一种方法可以推广该方法来解释单元重叠-例如,如果我有两个输入单元,范围从0到1和1到2,以及一个输出单元,范围从0.75到2,我想用某种加权平均值来计算输出单元格中的值,它识别出跨越1到2的输入单元格对输出单元

我正在尝试实现一些类似于python中关于重新填充的内容。那篇文章中的问题涉及到重新填充数组,这样一个输出单元格将包含所有对它有贡献的输入单元格的平均值。问题是每个输入单元(我认为)只对一个输出单元起作用——也就是说,没有真正的方法来解释一个输入单元与两个输出单元重叠的情况

我想知道是否有一种方法可以推广该方法来解释单元重叠-例如,如果我有两个输入单元,范围从0到1和1到2,以及一个输出单元,范围从0.75到2,我想用某种加权平均值来计算输出单元格中的值,它识别出跨越1到2的输入单元格对输出单元格的贡献大约是跨越0到1的输入单元格的4倍


这本身并不是插值,但我见过的几乎所有尝试做类似事情的方法都使用它。使用np.interp等直接向上插值的问题在于,如果一个输出单元格中有多个输入单元格,则此例程只会忽略一些点。

我不太确定您在寻找什么,但我现在正在做类似的工作。我有两个统一的有限差分网格,我需要将信息从一个映射到另一个,然后再映射回来。这个代码适合我的需要。这个函数x_to_x创建了一个矩阵M,这样我就可以将M的点积与网格a上的数据相乘,并在网格b上生成数据

def x_to_x(xa, da, xb, db):
    a = np.tile(xa, (np.size(xb), 1))
    b = np.tile(xb, (np.size(xa), 1)).T
    a_l = a - da / 2
    a_r = a + da / 2
    b_l = b - db / 2
    b_r = b + db / 2
    x_l = np.maximum(a_l, b_l)
    x_r = np.minimum(a_r, b_r)
    return np.maximum(x_r - x_l, 0.) / db
如果你有一个非均匀网格,da和db可以从标量调整为类似的东西,例如,
da=np.hstack(a[1:]-a[:-1],a[-1]-a[-2])