如何解决是什么原因导致“在输入DLASCLS参数编号4时具有非法值”错误,我该如何解决?
我使用脚本一个接一个地处理许多大的.csv文件。 但是,从昨天开始,尽管我没有更改python脚本中的任何内容,但是我得到了一个既无法解释也无法解决的错误。
我有一个简化的脚本版本。 当我不尝试绘制数据,移除savgol过滤器或减少数据点数量时,它将运行。 在下面提供的as版本中,它将在第二个循环中停止,并显示以下错误:
**进入DLASCLS时,参数编号4具有非法值
**在输入DLASCLS时,参数编号4具有非法值
追溯(最近一次通话):
中的文件“ simplified_problem.py”,第29行 ysmooth = savgol_filter(y,51,5)
文件“ C:\ Programs \ Python \ python37 \ lib \ site-packages \ scipy \ signal_savitzky_golay.py”,
savgol_filter中的第337行
coeffs = savgol_coeffs(窗口长度,多阶,导数=导数,delta = delta)
文件“ C:\ Programs \ Python \ python37 \ lib \ site-packages \ scipy \ signal_savitzky_golay.py”, savgol_coeffs中的139行
coeffs,_,_,_ = lstsq(A,y)
文件“ C:\ Programs \ Python \ python37 \ lib \ site-packages \ scipy \ linalg \ basic.py”,第1218行, 在lstsq
提高LinAlgError(“ SVD未在线性最小二乘中收敛”)
numpy.linalg.LinAlgError:SVD未在线性最小二乘中收敛
我怀疑该错误与脚本本身无关,因为该错误仅在之后出现 一个主要的窗口更新(当前版本为10.0.19041)。
有人知道导致问题的原因是什么以及如何解决吗? 请让我知道是否需要其他信息。 非常感谢您的帮助。
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import savgol_filter
import pandas as pd
from pathlib import Path
def curve(x,E,A,xmin):
'''Function describing a curve
x -- independent variable
E -- trap energy. expected values between 0-1 eV
A -- pre-exponential factor. positive for peaks with positive current
and negative for peaks with negative current
xmin -- position of the peak extremum. value in Kelvin
k -- Boltzmannfactor in eV/K
'''
k = 8.617333262145E-5 #eV/K
return A*np.exp(-(E/(k*x))-((np.exp((E/(k*xmin)))*(E/(k*xmin))**(9/2))/((E/(k*xmin))+3.5))*np.exp(-(E/(k*x)))*(E/(k*x))**(-7/2))
for i in range(3):
print(i)
x = np.arange(50,1051)
noise = np.random.normal(0,1,len(x))*3e-10
y = curve(x,0.35,-1e-4,500)+noise
#smooth data
ysmooth = savgol_filter(y,51,5)
#create (sub)plots
fig = plt.figure(constrained_layout=True,figsize=(8,4))
gs = fig.add_gridspec(2,4)
ax11 = fig.add_subplot(gs[0:2,0:2])
ax11.plot(x,y)
ax11.plot(x,ysmooth)
plt.show()
解决方法
您可以找到问题here的答案。您与Windows Update有关,最终与OpenBlas有关,numpy使用OpenBlas执行线性代数计算。遗憾的是,“解决方案”并不十分令人满意:您必须等待Microsoft在下一个Windows升级程序中修复它(希望如此!),或者通过conda安装numpy,后者使用Intel MKL作为后端而不是OpenBlas。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。