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

优化Python代码的4种方法

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

让我们使用Twitter情绪分析数据来计算每条推文的字数。我们将使用不同的方法,例如dataframe iterrows方法,NumPy数组和apply方法。你可以从此处下载数据集(https://datahack.analyticsvidhya.com/contest/practice-problem-twitter-sentiment-analysis/?utm_source=blog&utm_medium=4-methods-optimize-python-code-data-science)。

  1. ''' 
  2. 优化方法:apply方法 
  3. ''' 
  4. # 导入库 
  5. import pandas as pd  
  6. import numpy as np 
  7. import time 
  8. import math 
  9. data = pd.read_csv('train_E6oV3lV.csv') 
  10. # 打印头部信息 
  11. print(data.head()) 
  12. # 使用dataframe iterows计算字符数 
  13. print('nnUsing Iterrowsnn') 
  14. start_time = time.time() 
  15. data_1 = data.copy() 
  16. n_words = [] 
  17. for i, row in data_1.iterrows(): 
  18.  n_words.append(len(row['tweet'].split())) 
  19. data_1['n_words'] = n_words  
  20. print(data_1[['id','n_words']].head()) 
  21. end_time = time.time() 
  22. print('nTime taken to calculate No. of Words by iterrows :', 
  23. (end_time-start_time),'seconds') 
  24. # 使用Numpy数组计算字符数 
  25. print('nnUsing Numpy Arraysnn') 
  26. start_time = time.time() 
  27. data_2 = data.copy() 
  28. n_words_2 = [] 
  29. for row in data_2.values: 
  30.  n_words_2.append(len(row[2].split())) 
  31. data_2['n_words'] = n_words_2 
  32. print(data_2[['id','n_words']].head()) 
  33. end_time = time.time() 
  34. print('nTime taken to calculate No. of Words by numpy array : ', 
  35. (end_time-start_time),'seconds') 
  36. # 使用apply方法计算字符数 
  37. print('nnUsing Apply Methodnn') 
  38. start_time = time.time() 
  39. data_3 = data.copy() 
  40. data_3['n_words'] = data_3['tweet'].apply(lambda x : len(x.split())) 
  41. print(data_3[['id','n_words']].head()) 
  42. end_time = time.time() 
  43. print('nTime taken to calculate No. of Words by Apply Method : ', 
  44. (end_time-start_time),'seconds') 

(编辑:济源站长网)

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

热点阅读