gpt4 book ai didi

python - 使用 numpy 和 fft 在 for 循环中进行多核处理

转载 作者:行者123 更新时间:2023-12-01 09:31:46 29 4
gpt4 key购买 nike

我使用 numpy 和 fft 计算向量。我使用了 numpy 广播方法和 for 循环。两种方法的速度相似。如何使用多核、numpy 和 fft 计算向量?

import numpy as np
from numpy.fft import fft, ifft

num_row, num_col = 6000, 13572

ss = np.ones((num_row, num_col), dtype=np.complex128)
sig = np.random.standard_normal(num_col) * 1j * np.random.standard_normal(num_col)

# for loop
for idx in range(num_row):
ss[idx, :] = ifft(fft(ss[idx, :]) * sig)

# broadcast
ss = ifft(fft(ss, axis=1) * sig, axis=1)

结果

loop : 10.798867464065552 sec
broadcast : 11.298897981643677 sec

最佳答案

您可以将 axis 参数用于 fftifft 以及广播:

ss = np.ones((num_row, num_col), dtype=np.complex128)
sig = np.random.standard_normal(num_col) * 1j * np.random.standard_normal(num_col)

ss = ifft(fft(ss, axis=1) * sig, axis=1)

关于python - 使用 numpy 和 fft 在 for 循环中进行多核处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49903741/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com