title: numpy.array_equal returns False, even though arrays have the same shape and values
body: <p>I have a very simple function, as shown below</p>
  
  <pre><code>def new_price(A, B, x):
      return np.linalg.inv(A @ B) @ x
  </code></pre>
  
  <p>These are the inputs I give it</p>
  
  <pre><code>A = np.array([
      [2, 0, 1, 0],
      [1, 1, 1, 1],
      [0, 0, 0, 10]
  ]) 
  
  B = np.array([
      [3, 3, 3],
      [2, 0, 8],
      [0, 5, 3],
      [0, 0, 10] 
  ])
  
  x = np.array([ 84, 149, 500])
  </code></pre>
  
  <p>This returns the array <code>[ 1.  3.  5.]</code>. But, when I make the following equality check, it returns <code>False</code></p>
  
  <pre><code>v1 = new_price(A, B, x)
  v2 = np.array([1.0, 3.0, 5.0])
  np.array_equal(new_price(A, B, [ 84, 149, 500]), np.array([1.0, 3.0, 5.0]))
  </code></pre>
  
  <p>I checked and the shapes and the types of both the arrays are same. What am I missing here?</p>