Creating array views and copies
In the example about ravel()
, views were brought up. Views should not be confused with the construct of database views. Views in the NumPy universe are not read-only and you don't have the possibility to protect the underlying information. It is crucial to know when we are handling a shared array view and when we have a replica of the array data. A slice of an array, for example, will produce a view. This entails that if you assign the slice to a variable and then alter the underlying array, the value of this variable will change. We will create an array from the face picture in the SciPy package, and then create a view and alter it at the final stage:
Get the face image:
face = scipy.misc.face()
Create a copy of the face array:
acopy = face.copy()
Create a view of the array:
aview = face.view()
Set all the values in the view to
0
with aflat
iterator:aview.flat = 0
The final outcome is that only one of the...