2

我是 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)

另外:doing list(windowCurrent),离开np.array包装,也会返回一个错误。

链接到错误的全文

4

2 回答 2

2

在将它们附加到and之前尝试转换currentand 。voltagefloatwindowCurrentwindowVoltage

解释:

Numpy 的数组可以保存多种数据类型,而不仅仅是数字。在您的情况下,它似乎是一个字符串数据类型:line.split返回字符串,因此您得到一个 numpy 字符串数组。显然,您不能将字符串彼此相减。

于 2013-01-03T07:51:52.050 回答
0

我同意 silvado,问题在于将字符串 numpy 数组传递给curve_fit。

这可能有助于解决问题:

如何将字符串数组转换为numpy中的浮点数组?

于 2013-01-03T18:10:45.023 回答