對python中l(wèi)ist的拷貝與numpy的array的拷貝詳解
1.python中列表list的拷貝,會有什么需要注意的呢?
python變量名相當(dāng)于標(biāo)簽名。
list2=list1 ,直接賦值,實質(zhì)上指向的是同一個內(nèi)存值。任意一個變量list1(或list2)發(fā)生改變,都會影響另一個list2(或list1)。
eg:
>>> list1=[1,2,3,4,5,6] >>> list2=list1 >>> list1[2]=88 >>> list1 [1, 2, 88, 4, 5, 6] >>> list2 [1, 2, 88, 4, 5, 6]
而list3和list4是通過切片對list1的復(fù)制操作,分別指向了新的值。任意改變list3或list4的值,不會影響其他。
2.要使用ndarray類型的數(shù)組,需要from numpy import* 引用工具包numpy。
而對ndarray類型的數(shù)據(jù)進(jìn)行拷貝時,跟list類型有一點區(qū)別。
數(shù)組切片是原始數(shù)組的視圖,這意味著數(shù)據(jù)不會被復(fù)制,視圖上的任何修改都會被直接反映到源數(shù)組上.
array1,array2,array3,array4實際指向同一個內(nèi)存值,任意修改其中的一個變量,其他變量值都會被修改。
若想要得到的是ndarray切片的一份副本而非視圖,就需要顯式的進(jìn)行復(fù)制操作函數(shù)copy()。
eg:
array5=array1.copy() #對原始的array1的復(fù)制 array6=array1[1:4].copy() #對切片array1[1:4]的復(fù)制
那么,修改array5或array6,就不會影響array1。
以上這篇對python中l(wèi)ist的拷貝與numpy的array的拷貝詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決TypeError: Object of type xxx is&
這篇文章主要介紹了解決TypeError: Object of type xxx is not JSON serializable錯誤問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06Python 調(diào)用VC++的動態(tài)鏈接庫(DLL)
Python下調(diào)用VC++的動態(tài)鏈接庫的腳本2008-09-09Python?pycharm提交代碼遇到?jīng)_突解決方法
這篇文章主要介紹了Python?pycharm提交代碼遇到?jīng)_突解決方法,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-08-08使用python實現(xiàn)多維數(shù)據(jù)降維操作
今天小編就為大家分享一篇使用python實現(xiàn)多維數(shù)據(jù)降維操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02python多線程、網(wǎng)絡(luò)編程、正則表達(dá)式詳解
這篇文章主要介紹了python多線程、網(wǎng)絡(luò)編程、正則表達(dá)式,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-12-12