Scipy 生成全为零的数组的样条曲线
Scipy Spline producing an array full of zeros
我正在尝试使用 Scipy 模块中的样条曲线平滑曲线。我在 64 位 Windows 10 机器上使用 Python 2.7。我很确定我的代码编写正确,但我的 y 轴得到一个充满零的 numpy 数组。这是代码:
#Smooth Chart Curves
def interp(self, x, y):
xx = np.array(x)
yy = np.array(y)
xnew = np.linspace(xx.min(), xx.max(), 300)
ynew = spline(xx, yy, xnew)
xnew = np.array(xnew).tolist()
ynew = np.array(ynew).tolist()
return xnew, ynew
我首先将一个包含六个数字的列表传递给 x 和 y 变量。 xnew
变量工作正常,但 ynew = spline(xx, yy, xnew)
创建了一个 numpy 数组,其中填充了 300 个零。
我将以下内容作为 x 和 y 传递:
x = [2800.0, 2002.0, 1234.0, 800.0, 450.0, 0]
y = [5.0, 9.1, 15.3, 20.9, 25.4, 27.2]
您的 x 轴需要单调递增才能使插值工作。也许这是一个打字错误,但 y
在我看来更像 x 轴。
如果真的不是:
xx = np.array(x)
sx = np.argsort(xx)
xx = xx[sx]
yy = np.array(y)
yy = yy[sx]
将对 x
和 y
进行排序,以便 x
按升序排序。
我正在尝试使用 Scipy 模块中的样条曲线平滑曲线。我在 64 位 Windows 10 机器上使用 Python 2.7。我很确定我的代码编写正确,但我的 y 轴得到一个充满零的 numpy 数组。这是代码:
#Smooth Chart Curves
def interp(self, x, y):
xx = np.array(x)
yy = np.array(y)
xnew = np.linspace(xx.min(), xx.max(), 300)
ynew = spline(xx, yy, xnew)
xnew = np.array(xnew).tolist()
ynew = np.array(ynew).tolist()
return xnew, ynew
我首先将一个包含六个数字的列表传递给 x 和 y 变量。 xnew
变量工作正常,但 ynew = spline(xx, yy, xnew)
创建了一个 numpy 数组,其中填充了 300 个零。
我将以下内容作为 x 和 y 传递:
x = [2800.0, 2002.0, 1234.0, 800.0, 450.0, 0]
y = [5.0, 9.1, 15.3, 20.9, 25.4, 27.2]
您的 x 轴需要单调递增才能使插值工作。也许这是一个打字错误,但 y
在我看来更像 x 轴。
如果真的不是:
xx = np.array(x)
sx = np.argsort(xx)
xx = xx[sx]
yy = np.array(y)
yy = yy[sx]
将对 x
和 y
进行排序,以便 x
按升序排序。