Python 使用scipy.optimize.curve\u拟合
我是scipy新手,无法使用Python 使用scipy.optimize.curve\u拟合,python,scipy,curve-fitting,Python,Scipy,Curve Fitting,我是scipy新手,无法使用曲线拟合功能。我认为有一些scipy/numpy数据包装器需要用于独立和依赖的数据集。windowCurrent和windowVoltage是从我的数据集中保存一组滑动点的队列 如何包装电流/电压对列表以避免此错误 TypeError: unsupported operand type(s) for -: 'numpy.ndarray' and 'numpy.ndarray' 代码: 另外:执行list(windowCurrent),关闭np.array换行,也会返
曲线拟合
功能。我认为有一些scipy/numpy数据包装器需要用于独立和依赖的数据集。windowCurrent和windowVoltage是从我的数据集中保存一组滑动点的队列
如何包装电流/电压对列表以避免此错误
TypeError: unsupported operand type(s) for -: 'numpy.ndarray' and 'numpy.ndarray'
代码:
另外:执行list(windowCurrent)
,关闭np.array
换行,也会返回一个错误
要查看错误的全文,请尝试将
电流
和电压
转换为浮点
,然后再将其添加到窗口电流
和窗口电压
说明:
Numpy的数组可以保存多种数据类型,而不仅仅是数字。在您的例子中,它似乎是一个字符串数据类型:
line.split
返回字符串,因此您得到一个numpy字符串数组。显然,不能从字符串中减去字符串。我同意silvado的观点,问题在于将字符串numpy数组传递给曲线拟合
这可能有助于解决问题:
当退出
np.array()
时会出现哪种错误?类型错误:不支持-:“list”和“list”的操作数类型,这对我来说有点麻烦。非常感谢。我只是编辑了将每个项目添加到deque窗口的方式。谢谢
for line in inputFileContents[:maxlen]:
print line
timeStamp,voltage,current = line.split(",")
if windowCurrent == None and windowVoltage == None:
windowCurrent = deque(current, maxlen)
windowVoltage = deque(voltage, maxlen)
else:
windowCurrent.append(current)
windowVoltage.append(voltage)
for lineConents in inputFileContents:
timeStamp,voltage,current = line.split(",")
windowCurrent.append(current)
windowVoltage.append(voltage)
curveList.append([timeStamp, op.curve_fit(logCurve, np.array(list(windowCurrent)), np.array(list(windowVoltage)))])
curveListPopulate(curveList)