索引|优化Python代码的4种方法( 三 )

难以置信吧?对于上面的示例 , 向量化速度提高了80倍!这不仅有助于加速我们的代码 , 而且使其变得更整洁 。
4. Python中的多进程
多进程是系统同时支持多个处理器的能力 。
在这里 , 我们将流程分成多个任务 , 并且所有任务都独立运行 。 当我们处理大型数据集时 , 即使apply函数看起来也很慢 。
因此 , 让我们看看如何利用Python中的多进程库加快处理速度 。
我们将随机创建一百万个值 , 并求出每个值的除数 。 我们将使用apply函数和多进程方法比较其性能:
# 导入库import pandas as pdimport mathimport multiprocessing as mpfrom random import randint# 计算除数的函数def countDivisors(n) :count = 0 for i in range(1, (int)(math.sqrt(n)) + 1) :if (n % i == 0) :if (n / i == i) :count = count + 1 else :count = count + 2 return count # 创建随机数 random_data = http://kandian.youth.cn/index/[randint(10,1000) for i in range(1,1000001)]data = pd.DataFrame({'Number' : random_data })data.shape
索引|优化Python代码的4种方法文章插图
%%timedata['Number_of_divisor'] = data.Number.apply(countDivisors)
索引|优化Python代码的4种方法文章插图
%%timepool = mp.Pool(processes = (mp.cpu_count() - 1))answer = pool.map(countDivisors,random_data)pool.close()pool.join()
索引|优化Python代码的4种方法文章插图
在这里 , 多进程比apply方法快13倍 。 性能可能会因不同的硬件系统而异 , 但肯定会提高性能 。
结束
这绝不是详尽的列表 。 还有许多其他方法和技术可以优化Python代码 。 但是我在数据科学生涯中发现并使用了很多这四个 , 相信你也会发现它们也很有用 。
英文原文网址
【索引|优化Python代码的4种方法】在原文上可以在线执行代码