#python #numpy
#питон #тупица
Вопрос:
Я столкнулся с ошибкой в этом вопросе, как мне ее решить? Я думаю, что это связано с изменением формы, но я не уверен в этом.
dataset = data.values print(len(dataset)) training_data_size = math.ceil(len(dataset)*.7) scaler = MinMaxScaler(feature_range=(0,1)) scaled_data = scaler.fit_transform(dataset) train_data = scaled_data[0:training_data_size,:] x_train = [] y_train = [] for i in range(60,len(train_data)): x_train.append(train_data[i-60:i,0]) y_train.append(train_data[i,0]) x_train,y_train = np.array(x_train),np.array(y_train) x_train = np.reshape(x_train,(x_train.shape[0],x_train[1],1))
Ошибка выглядит следующим образом:
Traceback (most recent call last): File "C:UsersUSERAppDataRoamingPythonPython36site-packagesnumpycorefromnumeric.py", line 58, in _wrapfunc return bound(*args, **kwds) TypeError: only integer scalar arrays can be converted to a scalar index During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:/Users/USER/PycharmProjects/Predict Stock Price/main.py", line 105, in lt;modulegt; LSTM_predidction() File "C:/Users/USER/PycharmProjects/Predict Stock Price/main.py", line 72, in LSTM_predidction x_train = np.reshape(x_train,(x_train.shape[0],x_train[1],1)) File "lt;__array_function__ internalsgt;", line 6, in reshape File "C:UsersUSERAppDataRoamingPythonPython36site-packagesnumpycorefromnumeric.py", line 299, in reshape return _wrapfunc(a, 'reshape', newshape, order=order) File "C:UsersUSERAppDataRoamingPythonPython36site-packagesnumpycorefromnumeric.py", line 67, in _wrapfunc return _wrapit(obj, method, *args, **kwds) File "C:UsersUSERAppDataRoamingPythonPython36site-packagesnumpycorefromnumeric.py", line 44, in _wrapit result = getattr(asarray(obj), method)(*args, **kwds) TypeError: only integer scalar arrays can be converted to a scalar index Process finished with exit code 1
Любые предложения будут оценены по достоинству
Комментарии:
1. не могли бы вы, пожалуйста, вставить полную ошибку, в основном хотите понять, какую строку она вызывает
2. Вы , вероятно, хотели написать
np.reshape(x_train,(x_train.shape[0],x_train.shape[1],1))
, вы просто забылиshape
атрибут.
Ответ №1:
вам не хватает формы во втором элементе кортежа
x_train = np.reshape(x_train,(x_train.shape[0],x_train[1],1))
правильный :
x_train = np.reshape(x_train,(x_train.shape[0],x_train.shape[1],1))