加入收藏 | 设为首页 | 会员中心 | 我要投稿 济源站长网 (https://www.0391zz.cn/)- 数据工具、数据仓库、行业智能、CDN、运营!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

优化Python代码的4种方法

发布时间:2019-10-08 21:31:15 所属栏目:优化 来源:人工智能遇见磐创
导读:介绍 我是一个程序员。从大学时代开始我就一直在进行编程,而我仍然对使用简单的Python代码所开辟的道路之多感到惊讶。 但是我并不总是那么高效。我相信这是大多数程序员(尤其是刚起步的程序员)共有的一个特征,编写代码的快感始终优先于效率和简洁性。虽

我们将随机创建一百万个值,并求出每个值的除数。我们将使用apply函数和多进程方法比较其性能:

  1. # 导入库 
  2. import pandas as pd 
  3. import math 
  4. import multiprocessing as mp 
  5. from random import randint 
  6. # 计算除数的函数 
  7. def countDivisors(n) :  
  8.  count = 0 
  9.  for i in range(1, (int)(math.sqrt(n)) + 1) :  
  10.  if (n % i == 0) :  
    1. %%time 
    2. pool = mp.Pool(processes = (mp.cpu_count() - 1)) 
    3. answer = pool.map(countDivisors,random_data) 
    4. pool.close() 
    5. pool.join() 
  11.  if (n / i == i) :  
  12.  count = count + 1 
  13.  else :  
  14.  count = count + 2 
  15.  return count  
  16. # 创建随机数  
  17. random_data = [randint(10,1000) for i in range(1,1000001)] 
  18. data = pd.DataFrame({'Number' : random_data }) 
  19. data.shape 
优化Python代码的4种方法
  1. %%time 
  2. data['Number_of_divisor'] = data.Number.apply(countDivisors) 
优化Python代码的4种方法
  1. %%time 
  2. pool = mp.Pool(processes = (mp.cpu_count() - 1)) 
  3. answer = pool.map(countDivisors,random_data) 
  4. pool.close() 
  5. pool.join() 
优化Python代码的4种方法

在这里,多进程比apply方法快13倍。性能可能会因不同的硬件系统而异,但肯定会提高性能。

结束

这绝不是详尽的列表。还有许多其他方法和技术可以优化Python代码。但是我在数据科学生涯中发现并使用了很多这四个,相信你也会发现它们也很有用。

(编辑:济源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读