title: Find matching points in 2 separate numpy arrays
body: <p>I have two arrays of different sizes containing 3d points. I would like to efficiently compare the two arrays and find the points that match and ultimately return a simple number of matching points.</p>
  
  <pre><code>pA=[[0,0,0],[0,1,0],[1,2,4],[10,3,4],[1,20,1],[5,3,2]]
  pB=[[14,1,0],[1,2,4],[1,20,1],[15,1,0]]
  
  #returns 2
  </code></pre>
  
  <p>Currently I have a sloppy loop that does the trick, but it is not very performance friendly which is a problem considering I am trying to match many pairs of arrays with a larger number of points</p>
  
  <pre><code>t= np.array([pA[x]==pB for x in range(len(pA))]).sum(2)
  print np.sum(t==3)
  </code></pre>
  
  <p>I'm just not sure how to efficiently compare two multidimensional arrays of different sizes. And then how to do multiple iterations for a large number of pairs.</p>
  
  <p>EDIT</p>
  
  <p>Found a bit of a workaround which is pretty fast that combines the arrays, makes a unique version of the array, and then compares the lengths of the two arrays.</p>
  
  <pre><code>pts=np.concatenate((pA,pB),axis=0)
  pts2 = np.unique(pts.view([('', pts.dtype)]*pts.shape[1]))
  return len(pts)-len(pts2)
  </code></pre>