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

标签 python arrays numpy memory-management

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

a += 1 

是一个很好的方法,而不是:

a = a + 1

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

假设我想改为执行以下操作:

a = 1-a

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

最佳答案

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

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

关于python - 在这种情况下,内存分配在 python 中是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50244083/

相关文章:

python - 列表和元组有什么区别?

python - 如何在django html模板中调用函数

PHP 数组。基于键的简单拆分

c - 具有未定义长度但只有一个 int 元素的数组的目的是什么?

python - 如何在 Python numpy 中的二维数组上应用一维掩码?

python - 行继续字符 python 后的语法错误意外字符

python - 如何在 python/matplotlib 中制作居中气泡图

javascript - 如何通过特定对象键对数组中的值求和?

python - 处理溢出错误: math range error in Python with NumPy

python - 将图像中的所有其他颜色更改为黑色,除了 Python OpenCV/Numpy 中指定的一种颜色