title: "How to fix: 'only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices'?
body: <p>I'm trying to predict heart disease of patients using liner regression algorithm in machine learning and I have this error(only integers, slices (<code>:</code>), ellipsis (<code>...</code>), numpy.newaxis (<code>None</code>) and integer or boolean arrays are valid indices) can anyone please help me to solve it? </p>
  
  <pre><code>  import pandas
      import numpy as np
      from sklearn.linear_model import LinearRegression
      from sklearn.cross_validation import KFold
      heart = pandas.read_csv("pc.csv")
      heart.loc[heart["heartpred"]==2,"heartpred"]=1
      heart.loc[heart["heartpred"]==3,"heartpred"]=1
      heart.loc[heart["heartpred"]==4,"heartpred"]=1
      heart["slope"] = heart["slope"].fillna(heart["slope"].median())
      heart["thal"] = heart["thal"].fillna(heart["thal"].median())
      heart["ca"] = heart["ca"].fillna(heart["ca"].median())
      print(heart.describe())
      predictors=["age","sex","cp","trestbps","chol","fbs","restecg","thalach","exang","oldpeak","slope","ca","thal"]
      alg=LinearRegression()
      kf=KFold(heart.shape[0],n_folds=3, random_state=1)
      predictions = []
      for train, test in kf:
          # The predictors we're using the train the algorithm.  
          train_predictors = (heart[predictors].iloc[train,:])
          print(train_predictors)
          # The target we're using to train the algorithm.
          train_target = heart["heartpred"].iloc[train]
          print(train_target)
          # Training the algorithm using the predictors and target.
          alg.fit(train_predictors, train_target)
          # We can now make predictions on the test fold
          test_predictions = alg.predict(heart[predictors].iloc[test,:])
          predictions.append(test_predictions)
      # The predictions are in three separate numpy arrays.  Concatenate them into one.  
      # We concatenate them on axis 0, as they only have one axis.
      predictions = np.concatenate(predictions, axis=0)
  
      # Map predictions to outcomes (only possible outcomes are 1 and 0)
      predictions[predictions &gt; .5] = 1
      predictions[predictions &lt;=.5] = 0
      i=0.0
      count=0
      for each in heart["heartpred"]:
          if each==predictions[i]:
              count+=1
          i+=1
      accuracy=count/i
      print("Linear Regression Result:-")
      print("Accuracy = ")
      print(accuracy*100)
  </code></pre>
  
  <p>Error shown below:</p>
  
  <pre><code>File "C:\Users\Khadeej\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", 
  line 705, in runfile execfile(filename, namespace) File "C:\Users\Khadeej\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", 
  line 102, in execfile exec(compile(f.read(), filename, 'exec'), namespace) File "C:/Users/Khadeej/Desktop/Heart-Disease-Prediction-master/linear.py", 
  line 39, in &lt;module&gt; if each==predictions[i]: 
  IndexError: only integers, slices (:), ellipsis (...), numpy.newaxis (None) and integer or boolean arrays are valid indices
  </code></pre>