我是 scipy 新手,无法使用 curve_fit
函数。我认为有一些 scipy/numpy 数据包装器需要用于独立和依赖的数据集。 windowCurrent 和 windowVoltage 是保存我的数据集中的一组滑动点的队列。
如何包装电流/电压对列表以避免此错误?
TypeError: unsupported operand type(s) for -: 'numpy.ndarray' and 'numpy.ndarray'
代码:
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)
另外:执行 list(windowCurrent)
时,不进行 np.array
包装,也会返回错误。
Link错误全文
最佳答案
尝试转换current
和voltage
至float
在将它们附加到 windowCurrent
之前和windowVoltage
.
说明:
Numpy 的数组可以保存多种数据类型,而不仅仅是数字。在您的情况下,它似乎是字符串数据类型: line.split
返回字符串,因此您得到一个字符串的 numpy 数组。显然,您不能将字符串彼此相减。
关于python - 使用 scipy.optimize.curve_fit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14131843/