- Python Data Analysis
- Ivan Idris
- 308字
- 2021-08-05 17:31:51
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 famed Lena picture, and then create a view and alter it at the final stage. The Lena image array comes from a SciPy function.
- Create a copy of the Lena array:
acopy = lena.copy()
- Create a view of the array:
aview = lena.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 pictures depicts the model. The other ones are censored altogether, as shown in the following screenshot:

Refer to the following code of this tutorial (it is without comments to save space; for the full code, have a look at copy_view.py
), which shows the behavior of array views and copies:
import scipy.misc import matplotlib.pyplot as plt lena = scipy.misc.lena() acopy = lena.copy() aview = lena.view() plt.subplot(221) plt.imshow(lena) plt.subplot(222) plt.imshow(acopy) plt.subplot(223) plt.imshow(aview) aview.flat = 0 plt.subplot(224) plt.imshow(aview) plt.show()
As you can see, by altering the view at the end of the program, we modified the original Lena array. This resulted in three blue (or black if you are reading the print version of this book) pictures. The copied array was unchanged. It is crucial to remember that views are not read only.
- 電力自動化實用技術問答
- 自動控制工程設計入門
- 三菱FX3U/5U PLC從入門到精通
- JavaScript實例自學手冊
- Hands-On Artificial Intelligence on Amazon Web Services
- Natural Language Processing Fundamentals
- 數控銑削(加工中心)編程與加工
- 完全掌握AutoCAD 2008中文版:綜合篇
- 自動控制理論(非自動化專業)
- Lightning Fast Animation in Element 3D
- 零起點學西門子S7-200 PLC
- Unity Multiplayer Games
- ZigBee無線通信技術應用開發
- 步步驚“芯”
- 網頁設計與制作