我想-2.5 to 2.0通过使用该np.linspace()命令插入 8 个数据点,并完全理解这些数字应该是非负数,但是当我运行我的代码时,我收到一个错误,上面写着raise ValueError("x and y arrays must be equal in length along "
ValueError: x and y arrays must be equal in length along interpolation axis.这是我的代码:
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import interp1d
X = np.linspace(-2.5, 2.0, num=8, endpoint=True)
Y = np.linspace(1, 44, num=44, endpoint=True)
f = interp1d(X,Y)
f2 = interp1d(X, Y, kind='cubic')
Xnew = np.linspace(-2.5, 2.0, num=44, endpoint=True)
plt.plot(X, Y, 'o', Xnew, f(Xnew), Xnew, f2(Xnew), '--' )
plt.legend(['data', 'linear', 'cubic'], loc='best')
plt.show()
Run Code Online (Sandbox Code Playgroud)
小智 5
正如异常读取您提供的不同长度的数组一样。
看看这部分文档:
num : int,可选要生成的样本数。默认值为 50。必须为非负数。
X = np.linspace(-2.5, 2.0, num=8, endpoint=True)
Y = np.linspace(1, 44, num=44, endpoint=True)
Run Code Online (Sandbox Code Playgroud)
您生成 8 个 X 值和 44 个 Y 值。考虑到长度不匹配,没有明确的方法来生成 (x, y) 点。如果您为每个数组选择相同的 num,您将获得一个工作脚本。
| 归档时间: |
|
| 查看次数: |
1120 次 |
| 最近记录: |