gpt4 book ai didi

python - TA-Lib numpy "AssertionError: real is not double"

转载 作者:太空狗 更新时间:2023-10-29 21:26:38 25 4
gpt4 key购买 nike

我在 python 中使用 TA-Lib 包装器时出现 AssertionError。你能看看我的代码吗?非常感谢您的帮助。

import numpy as np
import talib

#This works
test_data = np.random.random(5)
np_out = talib.SMA(test_data,3)
print np_out

#How come this does not work? I need to fix
real_data = [135.01, 133.0, 134.0, 131.0, 133.0, 131.0]
np_real_data = np.array(real_data,dtype=np.object)
np_out = talib.SMA(np_real_data,3)
print np_out

错误信息:

  File "func.pyx", line 9200, in talib.func.SMA (talib/func.c:85610)
AssertionError: real is not double

我怀疑解决方案可能是将 double 转换为实数。我想测试这个想法。如何将 real_data 从 double 转换为 real?

谢谢。

最佳答案

I suspect the solution might be to convert double to real.

没有。你有真实的数据。 TA-lib 不喜欢“真实数据”。您想要将其转换为双 float 据。

re: qcc 无法解释的答案:

f8 是一个 64 位“ double ” float 。 http://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html

TA-lib 需要“双” float 的 numpy 数组作为输入。

http://en.wikipedia.org/wiki/Double-precision_floating-point_format

您可以使用多种方法到达目的地,最适合您的方法可能是:

    real_data = [135.01, 133.0, 134.0, 131.0, 133.0, 131.0]
float_data = [float(x) for x in real_data]
np_float_data = np.array(float_data)
np_out = talib.SMA(np_float_data,3)

还有几个:

1)

    real_data = [float(x) for x in [135.01, 133.0, 134.0, 131.0, 133.0, 131.0]]
np_real_data = np.array(real_data)
np_out = talib.SMA(np_real_data,3)

2)

    real_data = [135.01, 133.0, 134.0, 131.0, 133.0, 131.0]
np_real_data = np.array(real_data, dtype='f8')
np_out = talib.SMA(np_real_data,3)

3)

    real_data = [135.01, 133.0, 134.0, 131.0, 133.0, 131.0]
np_real_data = np.array(real_data, dtype=float)
np_out = talib.SMA(np_real_data,3)

4)

    real_data = map(float, [135.01, 133.0, 134.0, 131.0, 133.0, 131.0])
np_real_data = np.array(real_data)
np_out = talib.SMA(np_real_data,3)

5)

    real_data = [float(135.01), float(133.0), float(134.0), float(131.0), 
float(133.0), float(131.0)]
np_real_data = np.array(real_data)
np_out = talib.SMA(np_real_data,3)

关于python - TA-Lib numpy "AssertionError: real is not double",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22993124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com