Python 使用scipy.optimize.curve\u拟合

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新手,无法使用
曲线拟合
功能。我认为有一些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)