首頁  >  文章  >  後端開發  >  了解 Numpy 數組分配:何時分配新記憶體?

了解 Numpy 數組分配:何時分配新記憶體?

Patricia Arquette
Patricia Arquette原創
2024-10-22 09:34:30906瀏覽

Understanding Numpy Array Assignment: When is New Memory Allocated?

Numpy 陣列賦值與複製

簡介

簡介

在處理中至數個類別,重要了解分配如何影響數據。本文探討了三種賦值方法之間的差異:B = A、B[:] = A 和 numpy.copy(B, A),解決何時分配額外記憶體以及何時不分配額外記憶體的問題。

B = A

此賦值只是將新名稱 (B) 綁定到現有 Numpy 物件 (A)。兩個名稱都引用同一個對象,因此對其中一個名稱的任何就地修改都會反映在另一個名稱中。沒有分配額外的記憶體。

B[:] = A(相當於B[:]=A[:])

此操作從A 複製值放入現有陣列B 中。 B 和 A 的形狀必須相符。沒有分配額外的內存,因為現有的 B 數組被重複使用。

numpy.copy(B, A)

此語法不正確。正確的語法是 B = numpy.copy(A),它會建立一個包含 A 副本的新陣列。原始 B 數組不會被重複使用,因此在複製資料時會分配額外的記憶體。

numpy.copyto(B, A)此賦值等效於 B[:] = A。它將值從 A 複製到 B,覆蓋其現有資料。如果B中有足夠的空間,則不分配額外的記憶體;否則,將建立一個新數組並分配額外的記憶體。

以上是了解 Numpy 數組分配:何時分配新記憶體?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn