1. ホーム
  2. ディープラーニング

sklearn がエラーを報告しました。2次元の配列を期待したが、代わりに1次元の配列が得られた

2022-03-15 06:12:42

背景

sklearn使用時のエラー



ValueError: 2D 配列を期待したが、代わりに 1D 配列を得た

理由

これは、新バージョンのsklearnでは、すべてのデータが2次元行列であることが要求されているためで、データが別の行や列である場合は、2次元になるように修正します。

解答

.reshape(1,-1)を使用するだけです。

#Test the talib module
import talib
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

df = []
close_list = []
f = open("trade_records/contract_data_HOUR.txt",'r')
data = f.readlines()

for item in data:
    df.append(eval(item))
f.close()

print(df)
df = pd.DataFrame(df)
print(df)
real = talib.MA(df.close,timeperiod=3)

print(real)

x=range(0,len(real)-2,1)
y= real[2:]

# find the polynomial of x,y
z1 = np.polyfit(x,list(y),6)
p1 = np.poly1d(z1)# convert to polynomial expressions
yvals = p1(x) # find the fit function yvals

# Plot the fitted curve
plt.plot(x,y,'b--',label='original values')
plt.plot(x,yvals,'r',label='polyfit values')
plt.xlabel('Time')
plt.ylabel('Price')
plt.legend(loc=3)
plt.show()



出力は(1,3)で、完了です。