Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Scipy单变量样本退出代码-某些情况下为1073741819_Python_Scipy_Spline - Fatal编程技术网

Python Scipy单变量样本退出代码-某些情况下为1073741819

Python Scipy单变量样本退出代码-某些情况下为1073741819,python,scipy,spline,Python,Scipy,Spline,我使用scipy模块中的单变量样条拟合数据。它几乎适用于除此之外的所有情况,这会导致过程以退出代码-1073741819(0xC0000005)错误结束。如果我将平滑因子s更改为0,它也可以工作。任何解决这个问题的建议都会有帮助 更新1 我的工作环境是: python 3.7 scipy 1.3.2 numpy 1.17.4 您的s和k参数组合导致了问题 根据文档,节点数增加,直到条件sum((w[i]*(y[i]-spl(x[i]))**2,轴=0)达到某种程度,你是对的。但是,如果单

我使用scipy模块中的单变量样条拟合数据。它几乎适用于除此之外的所有情况,这会导致
过程以退出代码-1073741819(0xC0000005)
错误结束。如果我将平滑因子
s
更改为0,它也可以工作。任何解决这个问题的建议都会有帮助


更新1

我的工作环境是:

  • python 3.7
  • scipy 1.3.2
  • numpy 1.17.4


您的
s
k
参数组合导致了问题


根据文档,节点数增加,直到条件
sum((w[i]*(y[i]-spl(x[i]))**2,轴=0)达到某种程度,你是对的。但是,如果单变量样条算法不满足
和((w[i]*(y[i]-spl(x[i])**2,axis=0)\u curfilt\u消息
)并返回近似结果。对于这种情况,它退出时没有零代码,我想可能是由于算法实现代码错误。如果我在y上附加4个零,它也可以工作,因此,可能不是因为太小的
s
限制了有意义的数据点导致了退出问题。我认为这是单变量样本模块的一个缺陷。在我的测试中,如果我向y添加一个samll编号,例如eps=1e-5,则代码有效。
import matplotlib.pyplot as plt
import numpy as np
from scipy.interpolate import UnivariateSpline, InterpolatedUnivariateSpline

x = np.arange(78)
y = np.asarray([
 0.,         0.,         0.,         0.,         0.,         0.,
 0.,         0.,         5.03989319, 4.03191455, 4.03191455, 3.02393591,
 3.02393591, 2.01595727, 2.01595727, 1.00797864, 0.,         0.,
 0.,         0.,         0.,         0.,         0.,         0.,
 0.,         0.,         0.,         0.,         0.,         0.,
 0.,         0.,         0.,         0.,         0.,         0.,
 0.,         0.,         0.,         0.,         0.,         0.,
 0.,         0.,         0.,         0.,         0.,         0.,
 0.,         0.,         0.,         0.,         0.,         0.,
 0.,         0.,         0.,         0.,         0.,         0.,
 0.,         0.,         0.,         0.,         0.,         0.,
 0.,         0.,         0.,         0.,         0.,         0.,
 0.,         0.,         0.,         0.,         0.,         0.])

spl = UnivariateSpline(x, y, k=1, s=0.01)

knots = list(map(int, spl.get_knots()))
plt.plot(knots, y[knots], 'rx')
plt.plot(knots, y[knots], 'r-')
plt.plot(x, y, 'b-')
plt.show()