In Numpy we can make a new array object that looks at same data from another array object using view method.
Which will make a shallow object of an array. the new array will have the same data from a existing one (actually reference to it), so the data part of the new array will be just a reference to the data of a existing one!(we can resize the new one without changing the old array shape but they will still have the same data even if the old array elements were modified).
For example:
>>>import numpy as np
>>>a = np.array([1,2,3,4])
>>>c = a.view()
>>>c
array([1,2,3,4])
c is a shallow copy of a (they reference to the same data but not to the same object):
>>>a is c
False
However, if we tested c.base to a it give a True:
>>>c.base is a
True
knowing that both are ndarry objects:
>>>type(a)
<class 'numpy.ndarray'>
>>> type(c)
<class 'numpy.ndarray'>
if we tested the type of both a and c we find this:
>>> type(a.base)
<class 'NoneType'>
>>> type(c.base)
<class 'numpy.ndarray'>
My questions are:
-What is .base attribute exactly (is it the data part in ndarray object)?
-Why a and c have different types of their .base?
d, exactly?