title: KNN train() in cv2 with opencv 3.0
body: <p>I'm trying to run k-nearest neighbours using cv2 (python 2.7) and opencv 3.0. I've replicated the same error message using code like <a href="http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_ml/py_knn/py_knn_understanding/py_knn_understanding.html" rel="noreferrer">http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_ml/py_knn/py_knn_understanding/py_knn_understanding.html</a>:</p>
  
  <pre><code>import cv2
  import numpy as np
  import matplotlib.pyplot as plt
  # Feature set containing (x,y) values of 25 known/training data
  trainData = np.random.randint(0,100,(25,2)).astype(np.float32)
  # Labels each one either Red or Blue with numbers 0 and 1
  responses = np.random.randint(0,2,(25,1)).astype(np.float32)
  # Take Red families and plot them
  red = trainData[responses.ravel()==0]
  plt.scatter(red[:,0],red[:,1],80,'r','^')
  # Take Blue families and plot them
  blue = trainData[responses.ravel()==1]
  plt.scatter(blue[:,0],blue[:,1],80,'b','s')
  plt.show()
  newcomer = np.random.randint(0,100,(1,2)).astype(np.float32)
  plt.scatter(newcomer[:,0],newcomer[:,1],80,'g','o')
  
  #The following line is modified for OpenCV 3.0
  knn = cv2.ml.KNearest_create()
  knn.train(trainData,responses)
  ret, results, neighbours ,dist = knn.find_nearest(newcomer, 3)
  
  print "result: ", results,"\n"
  print "neighbours: ", neighbours,"\n"
  print "distance: ", dist
  
  plt.show()
  </code></pre>
  
  <p>I modified the line <strong>knn = cv2.ml.KNearest_create()</strong> for OpenCV 3, but the subsequent line produces an error "TypeError: only length-1 arrays can be converted to Python scalars" and I can't figure out what I should be using for the train function.</p>