取x点的numpy数组,并将其重塑为y点数组
我有一个特定数量点的numpy数组。我希望使用这个数组并使用填充和插值来更改点数,但是当在类似MatPlotLib的东西上绘制时,数组看起来是一样的 我曾尝试过取x点的numpy数组,并将其重塑为y点数组,numpy,padding,Numpy,Padding,我有一个特定数量点的numpy数组。我希望使用这个数组并使用填充和插值来更改点数,但是当在类似MatPlotLib的东西上绘制时,数组看起来是一样的 我曾尝试过np.repeat,np.kron,np.lib.pad等函数,但收效甚微 (例如) lista=[1,2,3,4,5]包含5个点 我想这是重塑为10点 listb=[1,1.5,2,2.5,3,3.4,4,4.5,5,5.5]包含10个点,但绘制时看起来仍然相同 然后尝试不同的样条曲线类型。如果您的数据不是非常平滑,高阶样条曲线可能会产
np.repeat
,np.kron
,np.lib.pad
等函数,但收效甚微
(例如)
lista=[1,2,3,4,5]
包含5个点
我想这是重塑为10点
listb=[1,1.5,2,2.5,3,3.4,4,4.5,5,5.5]
包含10个点,但绘制时看起来仍然相同
然后尝试不同的样条曲线
类型
。如果您的数据不是非常平滑,高阶样条曲线可能会产生不希望的摆动,因为它们试图用平滑曲线连接数据(匹配一阶或甚至二阶导数)。如果您只有一个线性函数,请将线性函数拟合到它,并根据所需的值对其进行评估:
import numpy as np
x_axis = np.arange(5) # These are your x-values for plotting with matplotlib
lista = [1,2,3,4,5]
现在拟合一个线性多项式:
linear_fit = np.poly1d(np.polyfit(x_axis, lista, 1))
并在同一网格上对其进行评估,但需要更多步骤:
linear_fit(np.linspace(x_axis[0], x_axis[-1], 9))
# array([ 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. ])
打印时,请确保使用新的x轴网:
import matplotlib.pyplot as plt
new_x = np.linspace(x_axis[0], x_axis[-1], 9)
plt.scatter(new_x, linear_fit(new_x), color='b')
plt.plot(x_axis, lista, color='r')
plt.show()
输出中只有9个点……是否只需要点之间的线性解释?