簡體   English   中英

在這種情況下,內存分配如何在python中工作?

[英]How does memory allocation work in python in this case?

假設我有一個非常大的numpy數組a ,我想將數值1添加到數組的每個元素。 從我到目前為止所讀到的:

a += 1 

這是一個很好的方式,而不是:

a = a + 1

因為在第二種情況下,在不同的存儲器槽中創建新陣列a ,而在第一種情況下,舊陣列在同一存儲器槽中被有效地替換。

假設我想要執行以下操作:

a = 1-a

做上述內存有效的方法是什么?

numpy.subtract(1, a, out=a)

直接使用subtract ufunc可以提供比-運算符更多的控制。 在這里,我們使用out參數將減法的結果放回到a

你可以這樣做:

a *= -1
a += 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM