title: Python attribute error : 'int' object has no attribute 'reshape'
body: <p>I am trying to predicts stock prices using python, while trying to reshape the dataset into a 2D num array for the 'fit' function by using this as reference : <strong><a href="https://stackoverflow.com/questions/34972142/sklearn-logistic-regression-valueerror-found-array-with-dim-3-estimator-expec">sklearn Logistic Regression &quot;ValueError: Found array with dim 3. Estimator expected &lt;= 2.&quot;</a></strong></p>
  
  <pre><code>next_day_open_values, nx, ny = next_day_open_values.shape
  next_day_open_values = next_day_open_values.reshape((next_day_open_values,nx*ny))
  y_normaliser = preprocessing.MinMaxScaler()
  y_normaliser.fit((np.expand_dims( next_day_open_values, -1 )))
  </code></pre>
  
  <p>I have come across this error:</p>
  
  <pre><code>    &lt;ipython-input-42-6ea43c55dc18&gt; in csv_to_dataset(csv_path)
       20 
       21     next_day_open_values, nx, ny = next_day_open_values.shape
  ---&gt; 22     next_day_open_values = next_day_open_values.reshape((next_day_open_values,nx*ny))
       23     y_normaliser = preprocessing.MinMaxScaler()
       24     y_normaliser.fit((np.expand_dims( next_day_open_values, -1 )))
  
  AttributeError: 'int' object has no attribute 'reshape'
  </code></pre>
  
  <p><strong>What has gone wrong? How do I fix this? Detailed answers are appreciated.</strong></p>
  
  <p>The code so far is given below (I am using Jupyter notebook):</p>
  
  <pre><code>import keras
  from keras.models import Model
  from keras.layers import Dense, Dropout, LSTM, Input, Activation
  from keras import optimizers
  import numpy as np
  np.random.seed(4)
  import tensorflow
  tensorflow.random.set_seed(4)
  </code></pre>
  
  <pre><code>import pandas as pd
  from sklearn import preprocessing
  import numpy as np
  
  history_points = 50
  
  def csv_to_dataset(csv_path):
      data = pd.read_csv(csv_path)
      data = data.drop('Date', axis=1)
      data = data.drop(0, axis=0)
      data_normaliser = preprocessing.MinMaxScaler()
      data_normalised = data_normaliser.fit_transform(data)
      # using the last {history_points} open high low close volume data points, predict the next open value
      ohlcv_histories_normalised =      np.array([data_normalised[i  : i + history_points].copy() for i in range(len(data_normalised) - history_points)])
      next_day_open_values_normalised = np.array([data_normalised[:,0][i + history_points].copy() for i in range(len(data_normalised) - history_points)])
      next_day_open_values_normalised = np.expand_dims(next_day_open_values_normalised, -1)
  
      next_day_open_values = np.array([data.iloc[:,0][i + history_points].copy() for i in range(len(data) - history_points)])
      next_day_open_values = np.expand_dims(next_day_open_values_normalised, axis=-1)
  
      next_day_open_values, nx, ny = next_day_open_values.shape
      next_day_open_values = next_day_open_values.reshape((next_day_open_values,nx*ny))
      y_normaliser = preprocessing.MinMaxScaler()
      y_normaliser.fit((np.expand_dims( next_day_open_values, -1 )))
  
      assert ohlcv_histories_normalised.shape[0] == next_day_open_values_normalised.shape[0]
      return ohlcv_histories_normalised, next_day_open_values_normalised, next_day_open_values, y_normaliser
  </code></pre>
  
  <pre><code>#dataset
  hlcv_histories, next_day_open_values, unscaled_y, y_normaliser = csv_to_dataset('AMZN1.csv')
  
  test_split = 0.9 # the percent of data to be used for testing
  n = int(ohlcv_histories.shape[0] * test_split)
  
  # splitting the dataset up into train and test sets
  
  ohlcv_train = ohlcv_histories[:n]
  y_train = next_day_open_values[:n]
  
  ohlcv_test = ohlcv_histories[n:]
  y_test = next_day_open_values[n:]
  
  unscaled_y_test = unscaled_y[n:]
  </code></pre>
  
  <p>Feel free to correct/edit this.</p>
  
  <p>Thanks </p>