设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 创业者
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

优化Python代码的4种方法(4)

发布时间:2019-10-08 18:23 所属栏目:21 来源:人工智能遇见磐创
导读:我们将随机创建一百万个值,并求出每个值的除数。我们将使用apply函数和多进程方法比较其性能: #导入库 importpandasaspd importmath importmultiprocessingasmp fromrandomimportrandint #计算除数的函数 defcoun

我们将随机创建一百万个值,并求出每个值的除数。我们将使用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代码。但是我在数据科学生涯中发现并使用了很多这四个,相信你也会发现它们也很有用。

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读