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

Sou*_*nak 15 python algorithm parameters performance numpy

什么是效用out参数在某些numpy功能,如cumsumcumprod或其他数学函数?

如果结果很大,是否有助于使用该out参数来提高计算时间或内存效率?

该线程提供了有关如何使用它的一些信息.但我想知道我什么时候应该使用它,有什么好处呢?

cel*_*cel 15

使用该out参数的函数创建新对象.这通常是您对函数的期望:给出一些数组并获得一个带有转换数据的新数组.

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

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

  • 我认为你应该仍然可以做`array.cumsum(0,out = array).cumsum(1,out = array).cumsum(2,out = array)`如果你想保持一个单行. (2认同)