我对 Python 还是很陌生,如果这个问题很愚蠢,请原谅我。我无法通过 Google 找到答案...
我在我的代码中使用 PyFFTW,它有一个规划阶段,您将两个变量(源/目标)传递给它,您从/到转换。然后,当您调用 FFT 时,它会在精确的内存空间上运行,这些变量在规划阶段所在的位置。因此,需要对变量进行任何操作,以便这两个变量在内存中的位置不会改变。 我找到了运算符 *=、+= 等,它们为标准数学运算符执行此操作。 但是在我的程序中,我需要对变量应用一个函数,它应该将它返回到相同的内存位置。 如何做到这一点?!
我最初按以下方式使用切片:
a[:] = func(a)[:]
但是我刚刚意识到,这非常慢(我的代码慢了大约 10%)。 那么有人知道该怎么做吗?
非常感谢任何帮助。提前致谢!
请您参考如下方法:
您的变量是可变类型,因此您的函数可以直接对其进行操作。
您仍然无法使用将要创建副本和/或进行新赋值的函数和运算符(与您已经无法使用的相同),但是函数参数的直接突变将是在函数外可见。
