溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python中l(wèi)ist拷貝與numpy的array拷貝進(jìn)行對比

發(fā)布時間:2021-08-26 10:50:55 來源:億速云 閱讀:119 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下python中l(wèi)ist拷貝與numpy的array拷貝進(jìn)行對比,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

1.python中列表list的拷貝,會有什么需要注意的呢?

python中l(wèi)ist拷貝與numpy的array拷貝進(jìn)行對比

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ū)別。

python中l(wèi)ist拷貝與numpy的array拷貝進(jìn)行對比

數(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拷貝進(jìn)行對比”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI