运算的内存开销
前⾯例⼦⾥我们对每个操作新开内存来储存它的结果。例如即使是 y = x + y 我们也会新创建
内存,然后再将 y 指向新内存。为了展⽰这⼀点,我们可以使⽤ Python ⾃带的 id 函数:如果两
个实例的 ID ⼀致,那么它们所对应的内存地址相同;反之则不同。
In [24]: before = id(y)
y = y + x
id(y) == before
Out[24]: False
如果我们想指定结果到特定内存,我们可以使⽤前⾯介绍的索引来进替换操作。在下⾯的例⼦中,
我们先通过 zeros_like 创建和 y 形状相同且元素为 0 的 NDArray,记为 z。接下来,我们把 x
+ y 的结果通过 [:] 写进 z 所对应的内存中。
In [25]: z = y.zeros_like()
before = id