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