<div dir="ltr"><div>In the following session a numpy array is created from an stdlib array:</div><div><br></div><div>In [1]: import array</div><div><br></div><div>In [2]: base = array.array('i', [1, 2])</div><div><br></div><div>In [3]: a = np.asarray(base)</div><div><br></div><div>In [4]: a.base</div><div><div>Out[4]: <memory at 0x7fb80383e8c8></div><div><br></div><div>In [5]: a.base.obj</div><div>Out[5]: array('i', [1, 2])</div><div><br></div><div>In [6]: a.base.obj is base</div><div>Out[6]: True</div></div><div><br></div><div>Why can't a.base be base?  What is the need for the intermediate memoryview object?</div></div>