視圖(淺復制)只是原有數據的一個引用,通過該引用可訪問、操作原有數據,如果我們對視圖進行修改,它會影響原始數據,因為淺復制共享內存。
副本(深復制)是對數據的完整拷貝,如果我們對副本進行修改,它不會影響到原始數據,因為深復制不共享內存。
調用ndarray的view()方法會產生一個視圖,下面通過示例來看一下。
importnumpyasnpa=np.
arange(6).reshape(2,3)
#創(chuàng)建視圖
b=a.view()
print('a的id:',id(a))
print('b的id:',id(b))
#修改b的形狀
b.shape=3,2
print('a的形狀:')
print(a)
print('b的形狀:')
print(b)
print(aisb)
調用ndarray的copy()方法會產生一個副本,下面通過示例來看一下。
importnumpyasnpa=np.
arange(1,6)
#創(chuàng)建副本
b=a.copy()
print(aisb)
b[1]=10
print(a[1])
print(b[1])
以上內容為大家介紹了python副本與視圖,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。