索引|优化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文章插图
%%timedata['Number_of_divisor'] = data.Number.apply(countDivisors)文章插图
%%timepool = mp.Pool(processes = (mp.cpu_count() - 1))answer = pool.map(countDivisors,random_data)pool.close()pool.join()文章插图
在这里 , 多进程比apply方法快13倍 。 性能可能会因不同的硬件系统而异 , 但肯定会提高性能 。
结束
这绝不是详尽的列表 。 还有许多其他方法和技术可以优化Python代码 。 但是我在数据科学生涯中发现并使用了很多这四个 , 相信你也会发现它们也很有用 。
英文原文网址
【索引|优化Python代码的4种方法】在原文上可以在线执行代码
- 优化|微软亚洲研究院发布开源平台“群策 MARO” 用于多智能体资源调度优化
- 人工智能|人工智能只会“优化”,而人类可以“进化”
- 告诉|阿里大佬告诉你如何一分钟利用Python在家告别会员看电影
- Python源码阅读-基础1
- Python调用时使用*和**
- 如何基于Python实现自动化控制鼠标和键盘操作
- 解决多版本的python冲突问题
- 学习python第二弹
- 极致优化 IDEA 启动速度(本文内容过于硬核)
- Python中文速查表-Pandas 基础