微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python - 输入数组的维度错误

如何解决Python - 输入数组的维度错误

在编码方面,我是一个绝对的初学者,最近我发现了 talib。 我一直在尝试计算 RSI,但遇到错误。我一直在像往常一样在互联网上寻找解决方案,但没有成功。我猜我的数据对于 talib.RSI 函数的数据类型有误,但这与我的了解程度有关。

如果有人能想出一个解决方案并对其进行一些扩展,那就太好了,这样我就可以在此过程中学到一些东西:-)

非常感谢,

马蒂

import pandas as pd
import talib
import numpy as np

data = pd.read_excel (r'name.xlsx')
df = pd.DataFrame(data,columns = ['close'])

RSI_PERIOD = 14

close_prices = pd.DataFrame(df,columns = ['close'])
np_close_prices = np.array(close_prices)
print(np_close_prices)

rsi = talib.RSI(np_close_prices,RSI_PERIOD)
print(rsi)

----------------------------------------------- ---------------------------- 异常回溯(最近一次调用 最后)在 12 打印(np_close_prices) 13 ---> 14 rsi = talib.RSI(np_close_prices,RSI_PERIOD) 15 打印(rsi)

~\anaconda3\lib\site-packages\talib_init_.py in wrapper(*args,**夸格) 25 26 如果索引为无: ---> 27 返回 func(*args,**kwargs) 28 29 # 如果是熊猫,则使用系列的 float64 值,否则使用传递的值

talib._ta_lib.RSI() 中的 talib_func.pxi

talib._ta_lib.check_array() 中的 talib_func.pxi

异常:输入数组的维度错误

解决方法

@kcw78 感谢您的回复。 在看到您的回复之前,我又上网查了一些,并设法找到了答案。我不知道 lambda 是什么或它做什么,但希望有一天我会找出并理解它是如何解决问题的:)

import pandas as pd
import talib
import numpy as np

RSI_PERIOD = 14

data = pd.read_excel (r'name.xlsx')
df = pd.DataFrame(data,columns = ['close'])
rsi = df.apply(lambda x: talib.RSI(x,RSI_PERIOD))
rsi.columns = ['RSI']
print(rsi)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。