首頁 >後端開發 >Python教學 >何時在 NumPy 數組賦值中分配額外的記憶體?

何時在 NumPy 數組賦值中分配額外的記憶體?

Linda Hamilton
Linda Hamilton原創
2024-10-22 10:25:30684瀏覽

When Is Additional Memory Allocated in NumPy Array Assignment?

Numpy 陣列賦值:記憶體分配差異

在NumPy 中,有三種常見方法:

  • B = A
  • B[:] = A
  • numpy.copy(B, A)

B = A

當您使用B = A 時,您並不是在建立新陣列。相反,您將新名稱 (B) 綁定到現有陣列 (A)。因此,對一個陣列所做的任何修改都會反映在另一個陣列中。

B[:] = A

此語法建立一個新陣列 B,其中包含與 A 相同的維度和值。原始數組 A 未修改。與 numpy.copy 相比,此方法需要更少的記憶體分配。

numpy.copy(B, A)

此方法並不合法,因為您寫的。應該是 B = numpy.copy(A)。 numpy.copy 建立一個與 A 具有相同維度和值的新陣列 B。與 B[:] = A 相比,此方法需要更多的記憶體分配,因為它從原始數組建立資料的單獨實體副本。

何時分配額外記憶體?

當您使用 numpy.copy 建立陣列的新實體副本時,會指派額外記憶體。這是因為它為複製的資料分配了新的連續記憶體區塊。

何時未分配記憶體?

使用 B = A 時未分配記憶體因為您只是重新命名原始陣列。當您使用 B[:] = A 時,也不會分配內存,因為它重用了與原始數組相同的內存位置。

以上是何時在 NumPy 數組賦值中分配額外的記憶體?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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