重新合并 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
假设我有数组
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