Python编程语言在中医药数据分析中的应用

2020-01-18 05:51谢佳东
电子技术与软件工程 2019年24期
关键词:科学计算类库编程语言

文/谢佳东

近年来,Python编程语言已经成为最受欢迎的程序设计语言之一。自2004年起Python的使用率呈线性增长,不断受到编程者的欢迎和喜爱。2010年,Python荣膺TIOBE 2010年度语言桂冠;2017年,IEEE Spectrum发布的2017年度编程语言排行榜中,Python位居第1位。2018年至今,Python在TIOBE编程语言排行榜始终保持较好的发展态势,稳居前五。

Python是一种面向对象、解释型计算机程序设计语言,语法简洁而清晰。Python编程语言基于ABC教学语言,且避免了ABC不够开放的劣势,加强了Python和其他语言如C、C++和Java的结合性,具有丰富和强大的类库,能够把其他编程语言设计的各种模块(尤其是C、C++)轻松地联结在一起,因此Python常常被称为胶水语言。自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于系统任务管理、Web应用程序编程与数据挖掘分析。

1 Python编程语言概述

Python是一种面向对象、解释型的脚本语言,同时也是一种功能强大而完善的通用型语言,在可移植性、可扩展性、简单易学等方面具有一定优势。Python作为一门解释型高级语言,因此它具有解释型语言的运行机制,天生具备跨平台特性,客户端平台只需提供Python解释器即可运行Python应用程序。Python可扩展性体现为丰富而强大的类库,这些类库提供的功能覆盖了网络编程、文件I/O、数据库访问、数据挖掘、机器学习以及深度学习等应用场景。Python相比Java等其他编程语言,Python编写的代码简单易读,可操作性强。

Python作为解释型编程语言,与C、C++、Java等编译型高级语言相比,除了上述优点之外,在运行速度、源代码保护等方面具有一定弱势。目前,Python主要分为两个版本,即Python 2何Python 3,和Python 2版本相比,Python3版本在语句输出、编码、运算和异常等方面做出了一些调整与改进,导致Python 3不一定向下兼容Python 2扩展库,当然这一问题随着时间推进,扩展库版本不断迭代,已经大幅改善,基本都支持Python 3。本文着重介绍的NumPy、Pandas以及Matplotlib可算计算与会图库已完全支持Python 3。

2 Python编程语言中常用的数据分析扩展程序

Python编程语言具有系统而丰富的功能扩展库,其中最为经典的科学计算与数据分析扩展库主要包括NumPy、Pandas和Matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图等功能。

图1:Matplotlib官网绘图示例

2.1 NumPy

NumPy命名的灵感来源于Numerical和Python两个单词,顾名思义NumPy是使用Python进行科学计算的基础软件包,可以替代MATLAB执行数值积分、微分、内插、外推等数学任务。NumPy主要包含N维数组对象、精密广播功能函数、强大的线性代数与随机数功能,提供了大量的库函数和操作,可以帮助软件开发人员、数据科学家轻松地进行数值计算。

在实际应用中,NumPy最重要的一个特点是其N维数组对象ndarray进行复杂的科学计算,它是用于存放同类型元素的多维数组,每个元素在内存中都有相同存储大小的区域,以0为开始下标标记集合中元素的位置索引。ndarray对象可以通过索引或切片来访问和修改内容,与Python中列表(list)的切片操作类似。ndarray数组对象可以通过slice函数,并设置start、stop及step参数,从原数组中切割出一个新的数组对象。

2.2 Pandas

Pandas是开放源代码且采用BSD许可的Python扩展库,为Python编程语言提供高性能、易于使用的数据结构和数据分析工具。Pandas基于Numpy提供的高性能矩阵运算,构建了强大的结构化数据分析工具集,有效的提高了数据清洗、数据挖掘和数据分析应用效率。

在实际应用中,Pandas的核心组件主要包括DataFrame与Series两个部分。DateFrame是Pandas中的一个表格型的数据结构,包含有一组有序的列,每列可以是不同的值类型,包括数值、字符串、布尔型等。DataFrame即有行索引也有列索引,可以认为其是由Series组成的字典。Series是一种类似于一维数组的对象,是由一组数据以及一组与之相关的数据标签组成。将Pandas中DataFrame与NumPy中的ndarrya有效结合,可极大地提升科学计算效率。

2.3 Matplotlib

Matplotlib是一个Python的2D绘图库,具备非常强大的绘图功能,可以绘制线图、等高线图、条形图、直方图、功率谱、误差图、散点图、3D图形甚至是图形动画等,绘制出的图形质量级别较高。Matplotlib最新的稳定版本为3.1.1,其具备跨平台特性,可用于Python脚本、IPython Shell、Jupyter以及Web应用程序。

在实际应用中,Matplotlib通过bar、plot、subplot、legend、scatter、table、imshow、hist等函数绘制各类图形,官网绘图示例如图1所示。

3 Python编程语言在中医药数据分析中的相关应用

数据挖掘技术在中医药领域已经得到了广泛应用。中医药数据分析与挖掘常用的方法有频数统计分析、关联规则分析、聚类分析等。在中医药数据分析与挖掘过程中,对于研究样本,常常涉及中药四气五味、性味归经、药物功效、药物分类以及中药用药频次的频数统计分析。为了传承名老中医诊疗治病经验,探索名老中医用药规律,研究人员通常以频次统计为基础,结合关联规则分析、聚类分析方法,以发现名老中医诊疗相关疾病的核心处方。

基于Python编程语言中的NumPy、Pandas扩展库可以完成基本的中医药数据频数统计分析,借助Github上托管的Apriori算法、K-means算法源代码完成关联规则与聚类分析,通过Matplotlib将数据统计分析结果以图表的方式呈现出来,借助Python可以快速的进行中医药数据分析。

随着人工智能技术的发展,Python扩展库中已经涌现了以谷歌为代表的TensorFlow和以Facebook为代表的PyTorch两种深度学习框架。TensorFlow现已被各类公司、企业与创业公司广泛用于自动化工作任务和开发新系统,其在分布式训练支持、可扩展的生产和部署选项支持方面备受好评。PyTorch简洁、易于使用、支持动态计算图且内存使用高效,因此越来越受欢迎。随着技术的不断进步,期待中医药插上人工智能翅膀,利用深度学习技术进一步挖掘名老中医诊疗经验,为中医药发展提供技术支撑。

4 结束语

综上所述,Python语言是一种简洁、效率高且易于维护的编程语言。结合NumPy、Pandas、Matplotlib可为科学计算、数据分析结果绘图提供技术支撑。基于Python编程语言开发包含频数统计分析、关联规则分析、聚类分析的中医药数据分析应用,有着类库丰富、操作简单、跨平台、维护简单等优势。随着TensorFlow与PyTorch的不断发展与完善,Python编程在中医药数据分心中的功能将更加强大。

猜你喜欢
科学计算类库编程语言
压力-体积转换在CFC编程语言中的实现解析
《计算机程序设计》课程中科学计算思维能力的培养
Java编程语言的特点与应用
浅谈不同编程语言对计算机软件开发的影响
关于理科生计算能力培养的探讨
面向对象Web开发编程语言的的评估方法
大学物理教学中培养科学计算能力的研究