Mattie
Mattie

Reputation: 1

Python - input array has wrong dimensions

I'm an absolute beginner when it comes to coding and recently I discovered talib. I've been trying to calculate an RSI, but I encountered an error. I've been looking up the internet for a solution like I usually do, but without success. I'm guessing my data has a wrong datatype for the talib.RSI function, but that's about how far my knowledge goes.

Would be great if someone could come up with a solution and expand a little bit on it so I might be able to learn a bit along the way :-)

Many thanks in advance,

Mattie

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)

--------------------------------------------------------------------------- Exception Traceback (most recent call last) in 12 print(np_close_prices) 13 ---> 14 rsi = talib.RSI(np_close_prices, RSI_PERIOD) 15 print(rsi)

~\anaconda3\lib\site-packages\talib_init_.py in wrapper(*args, **kwargs) 25 26 if index is None: ---> 27 return func(*args, **kwargs) 28 29 # Use Series' float64 values if pandas, else use values as passed

talib_func.pxi in talib._ta_lib.RSI()

talib_func.pxi in talib._ta_lib.check_array()

Exception: input array has wrong dimensions

Upvotes: 0

Views: 1560

Answers (1)

Mattie
Mattie

Reputation: 1

@kcw78 thanks for your reply. I looked up the internet some more before I saw your reply and managed to find an answer. I have no clue what lambda is or what it does yet, but hopefully one day I'll find out and understand how this fixes the problem :)

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)

Upvotes: 0

Related Questions