[英]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.