当下,数字化时代已来临,借着人工智能的东风,Python在编程语言排行中的地位也不断攀升。简洁易于上手的语法和丰富的扩展,让它在教育培训、金融、财务、营销等领域都有一席之地。

学Python已成为当下年轻人读懂计算机加快工作效率的一种方式,但是最终取得真经的人少之又少。Python到底可以帮助你实现什么样的操作应用?今天让我们看看开课吧的优秀学员威小明是如何在学业中使用Python爬取数据的。

01优秀学员介绍

威小明,来自某Top2大学的理科研究生,为处理繁多的实验数据踏上了学习Python之路,成功将用于数据处理的工作时间从几小时压缩到了几分钟。他的新座右铭: 当你课余时间不知道学什么的时候,去学学编程,总没错!

02PYTHON挑战赛参赛作品

作为化学专业研究生的我,出于专业目的与兴趣开始学习Python。虽然刚学完爬虫,但因专业需求,提前学了一些Python数据处理的内容,进行专业实验数据的批量处理与作图。

不得不说Python是真的强大,原本在实验室中作图一般用origin,但因为获得的源数据是保存为.txt模式上百个文件。按照原来的方法需要挨个文件打开复制粘贴到origin中(这一步可能就得需要至少一个小时,还涉及.txt文件中的无用抬头信息的删除以及表格信息按照空格分隔等),再进行作图处理时对电脑配置也有要求。作图时由于涉及三维数据,需要先转化为矩阵(以前软件在这一步会经常卡死),并对参数进行非常复杂的调整,难以操作(以前处理该数据时几乎要花费半天到一整天的时间)。

但用Python之后,可以用相当简易的代码实现从上百个.txt文件中自动提取数据生成excel文档,并进行扣除基线,最后生成图像的过程。之后再遇到类似的数据需要处理时,可以直接运行程序,仅需几分钟便能解决,实在是太方便了。目前本人受此启发还制作了其它批量数据处理模板。

在化学专业锂离子电池研究相关内容上,Python也展现了它的强大之处。锂离子电池是利用锂离子在正负两极之间的转移工作的电池,我的研究是针对某锂离子电池正极材料在循环前两圈(即充电-用完电如此循环2次)过程中的结构变化做出的研究。

采用的方法是X射线衍射(简称XRD,可以给出正极材料微观结构相关的信息,正常的XRD图横轴为2倍衍射角,纵轴为衍射强度),在循环过程中进行该测试可以获得不同时间点的XRD图谱,从而得知材料的微观结构在该过程中是如何变化的。要作出的图像为时间变化过程中的XRD叠加图,横轴为2倍衍射角,纵轴为充放电时间,采用颜色映射衍射强度(成为原位XRD图谱,图像类型为matplotlib中的contour图,即热力图)。

下面将贴出这几天针对该项目所写的代码相关的说明。该程序代码分为三个部分:

1.从特定.txt文件中提取表格数据保存至excel;

2.用origin针对第0分钟的XRD数据画图提取基线复制粘贴至excel(经查阅资料,这一步如果用python将涉及机器学习的内容,门槛稍高故借用origin提取基线。很简单,仅需几分钟便能解决,不会引入太多额外工作量),将1中生成的excel中的每列数据扣除基线保存至新的excel;

3.使用pandas库及matplotlib库将2中生成的excel数据转化为横轴为角度,纵轴为时间,颜色映射强度的热力图像(原位XRD图)。

接下来将具体讲述:

从特定.txt文件中提取表格数据保存至excel:

1.进行测试后得到的源数据为如下的数十上百个.txt文件,每个.txt文件前半部分为测试参数(作图不需要),后半部分才是我们需要的数据(列与列之间利用空格隔开,第一列为2倍衍射角,第二列为衍射强度)。

程序思路是按文件遍历文件夹,将文件打开后按行遍历,当行数据中包含‘*’或‘#’时,执行下一循环,否则将数据按空格分隔为长度为2的list,加入info[]二维list中,使用pandas库写入excel进行保存。提取数据的python代码见step1_txt_to_excel.py。

运行程序后自动保存的excel如下(见文件夹中的results_p_LCO.xlsx),行索引为2倍衍射角,列索引为时间:

2. 用origin针对第0分钟的XRD数据画图提取基线复制粘贴至excel,将1中生成的excel中的每列数据扣除基线保存至新的excel:

Origin提取得到的基线数据作为一列数据保存在1中生成的excel的sheet2中,现需要将sheet1中的每一列数据减去sheet2的基线数据,并保存为新的excel文件。采用python代码相当简单,见step2_minus_baseline.py,生成的新excel见results_p_LCO_process.xlsx。

3. 使用pandas库及matplotlib库将2中生成的excel数据转化为横轴为角度,纵轴为时间,颜色映射强度的热力图像(原位XRD图),该代码推荐在jupyter notebook中运行,代码见step3_generate_plot.ipynb.

运行程序后获得的原位XRD谱图(热力图)如下(p-LCO-insitu-XRD.png):

根据颜色变化及峰位置变化便能获得正极结构变化的相关信息。

如果要改变源数据重新绘制图表,只需要修改每个程序中的文件地址及少量参数;若要做成其他类型图像也只需修改第三步中的contourf方法类型及参数即可。再也不用重头复制粘贴处理上大半天了,麻麻也不用担心电脑死机了。

python学不会怎么办_学Python很久都学不会,技术大牛教你打开它的正确方式相关推荐

  1. python queue 调试_学Python不是盲目的,是有做过功课认真去了解的

    有多少伙伴是因为一句'人生苦短,我用Python'萌生想法学Python的!我跟大家更新过很多Python学习教程普及过多次的Python相关知识,不过大家还是还得计划一下Python学习路线!Pyt ...

  2. python精通时间_学Python需要多久能学会?精通Python需要多长时间?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 严格意思上的说,Python其实是一个脚本语言,编程语言多种多样,但是却有开源和闭源之分,Python就是一种开放核心源代码编程语言,其开发代码的效率非常 ...

  3. python画樱桃小丸子_学python画图最快的方式——turtle小海龟画图

    原标题:学python画图最快的方式--turtle小海龟画图 python中的画图方式主要有三种:turtle.tkinter.pygame,我们先从最简单的turtle开始. 学python画图最 ...

  4. python源文件改写编写一个程序读取一个python源程序文件_学PYTHON第三节:编译和解释...

    计算机执行源程序的两种方式:编译和解释 首先,了解一下静态语言,动态语言,目标代码,源代码. 动态类型语言(又称为脚本语言或扩建语言):在运行期进行类型检查的语言,也就是在编写代码的时候可以不指定变量 ...

  5. python音乐相册_学Python爬虫,就得从爬高清美图开始!

    写在前面 前几天玩游戏时,lol盒子右下角有条广告,广告大概这个样子 咦,小姐姐,还有cosplay,点进去看看. 哇,发现一个好玩的网站,好多漂亮的妹子,页面打开很流畅,点开后有的浏览页面还有好听的 ...

  6. python赚钱吗_学python能挣钱吗

    简书 Markdown 语法详解 关于简书 Markdown Markdown 语法的目标: 成为一种适用于网络的书写语言.本文的目的:使读者轻松了解简书对 Markdown 语法的支持,了解其优点和 ...

  7. python虽然火为什么工作少_学Python开发干什么工作 人工智能方面的吗

    大家都在学Python开发,你和别人的差距在哪?我们为何要学习Python开发,如何才能学好这个语言呢,学有所成之后能做什么呢? 据我所知,Python大概于2000年前后(或许实际情况更早一些)传入 ...

  8. python3用什么系统好_学python用什么系统【怎么学好python】

    Python语法简捷而清晰,具有丰富和强大的类库.它常被昵称为胶水语言,下面小编收集了一些关于学好python方法,希望对你有帮助 学好python方法 0基础学python方法 第一步:安装开发环境 ...

  9. 学python对工作有什么帮助_学python有什么好处 学好了能干什么

    Python是目前最火的编程语言之一,python简单易学.好上手,是很多人的首选编程语言.对于想做程序员的人来说,学python能够更快地接触到计算机工作.对于其他行业的人而言,学好了python也 ...

最新文章

  1. yolo v3制作自己的数据_小白也能弄懂的目标检测之YOLO系列 第一期
  2. python查询mysql 乱码问题_python查询mysql中文乱码问题
  3. 2020牛客国庆集训派对day3 Points
  4. [css] 举例说明跟字体相关的属性有哪些
  5. 总有几位老师让你一生感激不尽----我的大学老师
  6. java List转Map的三种方法(java8语法特性使用)
  7. Dynamic CRM 2013学习笔记(二十二)插件里调用WCF服务
  8. 修改Wordpress插件---advanced-access-manager.1.7.3---
  9. 海量数据搜索---demo展示百度、谷歌搜索引擎的实现
  10. 单片机pwm控制基本原理详解
  11. 计算机键盘没有fn,教您fn键设置方法
  12. Python学习笔记之八皇后问题
  13. 基于python的个人博客系统的设计开题报告_基于SSM的个人博客系统设计开题报告...
  14. raptor输入n个数据排序_常人或许不知晓的苹果Iphone输入法N个快捷录入技巧
  15. mac系统按Esc键无法切换vim编辑模式
  16. pr怎么把视频去水印
  17. Latex和word相互转换。word表格制作
  18. 线性表长度(线性表实训)
  19. 已注销主体的公众号迁移办理流程及方法
  20. struts2最近量产漏洞分析

热门文章

  1. fetch发送2次请求的原因分析
  2. 淘宝常用API和错误表说明
  3. T-SQL中的go是什么意思?
  4. 4.21 使用条件格式标识指定范围的日期 [原创Excel教程]
  5. Sequel Pro意外退出问题解决
  6. ubuntu下迅雷安装完全策略
  7. 使用ipmi进行服务器管理
  8. 动画制作——CCAnimation
  9. pytorch改变图片格式顺序
  10. ppt是学计算机的那一块,如何制作一个一眼就喜欢的PPT封面