问题 numpy函数中参数'out'的效用


什么是实用的 out 某些参数 numpy 功能如 cumsum 要么 cumprod 或其他数学函数?

如果结果是巨大的,它有助于使用 out 参数,以提高计算时间或内存效率?

这个帖子 提供一些有关的信息 怎么样 使用它。但我想知道 什么时候 我应该使用它,有什么好处?


9481
2017-12-04 12:13


起源

你是否 读 答案?例如。 “控制 dtype 是一个使用的理由 out。另一个是通过'重用'已经存在的数组来节省内存。“ - jonrsharpe
@jonrsharpe是的我亲爱的。但我正在寻找更多解释。 - Sounak
然后 提到这一点 在你的问题。你从中得到了什么,有什么不清楚的?尝试 请明确点 在提问时。 - jonrsharpe


答案:


采取的功能 out 参数创建新对象。这通常是您对函数的期望:给出一些数组并获得一个带有转换数据的新数组。

但是,想象一下你想连续几千次调用这个函数。每个函数调用都会创建一个新数组,这当然需要花费很多时间。

在这种情况下,您可能想要创建一个输出数组 out 并让函数用输出填充数组。处理完数据后,您可以重复使用 out 并让函数覆盖其值。这样你就不会分配或释放任何内存,这可以节省你很多时间。


11
2017-12-04 12:31



array.cumsum(0,out=array) array.cumsum(1,out=array) array.cumsum(2,out=array)    比...更好 array.cumsum(0).cumsum(1).cumsum(2) - Sounak
我认为你仍然可以做到 array.cumsum(0, out=array).cumsum(1, out=array).cumsum(2, out=array) 如果你想保持一个单线。 - Jaime