gpt4 book ai didi

python - 加速python中的循环

转载 作者:太空宇宙 更新时间:2023-11-04 03:58:00 24 4
gpt4 key购买 nike

我遇到了一些性能问题,希望能快速查看一下。

我正在读取频域数据,我需要制作一个数据立方体来补偿时域中的起始频率。

我现在的做法是:

compdata = [[np.exp(t_range*sflist[y]) for y in x] for x in sfcube]

在哪里

t_range = 1j*2*np.pi*time_axis_ns
time_axis_ns = np.array([x*delta_time_ns for x in xrange(number_of_points_for_fft)])
sflist = array([ 29500000., 30500000.])

sfcube 是一个 NxM 数组,带有 sflist 的索引。

计算 compdata 是目前我程序中最慢的部分,有什么优化的想法吗?

最佳答案

快速取胜是使用多处理模块将其并行化到所有 CPU 内核(+HT,如果可用)。

from multiprocessing import Pool
pool = Pool(16) ## use total number of cores, x2 if HT is supported.

def f(y):
return np.exp(t_range*sflist[y])

compdata = [pool.map(f, x) for x in sfcube]

当然,这将使您的速度提高 4 倍到 16 倍(取决于核心数量)。不过,如果这还不够好,您需要弄清楚如何使用向量/矩阵运算来做到这一点。

关于python - 加速python中的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17293667/

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