Numpy 陣列賦值:記憶體分配差異
在NumPy 中,有三種常見方法:
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中文網其他相關文章!