重新合并 python 数组

Re-binning python array

假设我有数组

x=[0,0.5,1.7,4,5.5,5.7,8,10]
y=[10,23,2,3,55,67,74,20]

绘制时,它会在 x 轴上显示 0 到 10 之间的值,但是,数据不会在 x 上合并为整数值。有没有一种方法可以将值装箱到 x=[0,1,2,3....10]。 我知道插值可以帮助我们对值进行分箱,还有其他方法吗?

Numpy 可以提供帮助。

import numpy as np
x=[0,0.5,1.7,4,5.5,5.7,8,10]
y=[10,23,2,3,55,67,74,20]

z = np.interp([0,1,2,3,4,5,6,7,8,9,10], x, y)

z = array([10,14.25,2.13043478,2.56521739,3,37.66666667,14.86956522,44.43478261,74,47,20])

希望对您有所帮助。

此示例使用 matplotlib 进行插值:

import matplotlib.pyplot as plt
import numpy as np

if __name__ == "__main__":
    x=[0,0.5,1.7,4,5.5,5.7,8,10]
    y=[10,23,2,3,55,67,74,20]

    z = np.interp([1,2,3,4,5,6,7,8,9,10,11], x, y)

    plt.plot(x,y)
    plt.plot(z)
    plt.show()

结果将显示在这张图片中。蓝线是坐标 x 和 y。黄色是interploation