在这种情况下,内存分配如何在python中工作?

时间:2018-05-09 00:59:08

标签: python arrays numpy memory-management

假设我有一个非常大的numpy数组a,我想将数值1添加到数组的每个元素。从我到目前为止所读到的内容:

a += 1 

是一种很好的方式,而不是:

a = a + 1

因为在第二种情况下,在不同的内存插槽中创建了一个新数组a,而在第一种情况下,旧数组在同一内存插槽中被有效替换。

假设我想要执行以下操作:

a = 1-a

执行上述操作的内存有效方法是什么?

2 个答案:

答案 0 :(得分:6)

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

直接使用subtract ufunc可以提供比-运算符更多的控制权。在这里,我们使用out参数将减法结果放回a

答案 1 :(得分:3)

你可以这样做:

a *= -1
a += 1
相关问题