Python 3.x 如何将3d直方图的边缘值转换为直方图的中点值?

Python 3.x 如何将3d直方图的边缘值转换为直方图的中点值?,python-3.x,numpy,histogram,interpolation,histogram2d,Python 3.x,Numpy,Histogram,Interpolation,Histogram2d,如果hist,(x,y,z)=numpy.historogramdd()给出了与三维函数的存储箱边缘相对应的位置(x,y,z)处的直方图值,那么如何计算(插值)中点处的直方图值,即(x+d/2,y+d/2,z+d/2)其中d是所有三个方向上的固定大小的箱子?实际上,np。histogramdd给出了x,y,z中的箱子边界,但计数是“在中点”,而不是边界(严格地说,它们都不是,它们都在dxxd以中点为中心的立方体上) 如果——出于某种原因——您在边界处有值并且想要插值,并且如果您同意线性插值: n

如果
hist,(x,y,z)=numpy.historogramdd()
给出了与三维函数的存储箱边缘相对应的位置(x,y,z)处的直方图值,那么如何计算(插值)中点处的直方图值,即(x+d/2,y+d/2,z+d/2)其中d是所有三个方向上的固定大小的箱子?

实际上,
np。histogramdd
给出了
x,y,z
中的箱子边界,但计数是“在中点”,而不是边界(严格地说,它们都不是,它们都在
dxxd
以中点为中心的立方体上)

如果——出于某种原因——您在边界处有值并且想要插值,并且如果您同意线性插值:

np.lib.stride_tricks.as_strided(hist, (2, 2, 2, *map((-1).__add__, hist.shape)), 2 * hist.strides).mean(axis=(0, 1, 2))
这只是取8个最近邻居的平均值