title: Why a single Numpy array element is not a Python scalar?
body: <p>Can someone explain the Numpy design decision to keep single elements of arrays as distinct from Python scalars?</p>
  
  <p>The following code works without errors</p>
  
  <pre><code>import numpy as np
  a = np.array([1, 2, 3])
  b = a[0]
  print(b.size)
  </code></pre>
  
  <p>This illustrates that <code>b</code> is not a simple Python scalar, and in fact <code>type(b)</code> gives <code>numpy.int32</code> instead of <code>int</code>.</p>
  
  <p>Of course, if one defines <code>b = 1</code>, the command <code>b.size</code> throws an error because </p>
  
  <blockquote>
    <p>AttributeError: 'int' object has no attribute 'size'</p>
  </blockquote>
  
  <p>I find this difference of behaviour confusing and I am wondering what is its motivation.</p>