kon*_*ant 2 python arrays memory-management numpy
假设我有一个非常大的numpy
数组a
,我想将数值1添加到数组的每个元素.从我到目前为止所读到的:
a += 1
Run Code Online (Sandbox Code Playgroud)
这是一个很好的方式,而不是:
a = a + 1
Run Code Online (Sandbox Code Playgroud)
因为在第二种情况下a
,在不同的存储器槽中创建新阵列,而在第一种情况下,旧阵列在相同的存储器槽中被有效地替换.
假设我想要执行以下操作:
a = 1-a
Run Code Online (Sandbox Code Playgroud)
做上述内存有效的方法是什么?
numpy.subtract(1, a, out=a)
Run Code Online (Sandbox Code Playgroud)
subtract
直接使用ufunc可以提供比-
操作员更多的控制.在这里,我们使用out
参数将减法的结果放回a
.