Python语言在审计工作中的应用研究

来源: 柳州市审计局  |   发布日期: 2020-09-25 15:30    |  作者: 蒋志刚

当前,大数据成为一个热门话题,审计行业不可避免的受到新技术的影响。Python语言近几年火爆了起来,在很多大数据技术应用中都可以见到Python的使用介绍,最近,审计署也将在计算机审计中级培训中引入Python语言的学习,这给审计机关的审计人员提出了新的要求,我们有必要对Python语言进行进一步的研究,推进其在审计工作中的应用。


一、Python语言的起源和特点

(一)Python语言的起源

Python由荷兰人吉多·范罗苏姆(Guido van Rossum)于1989年底基于ABC教学语言开发的,并且结合了Unix Shell和C语言的使用习惯。2004年以后,Python的使用率呈线性增长,目前已发布到Python3.8版本。在2020年8月的TIOBE编程语言排行榜上, Python已经上升到第3位,仅次于C和Java。

(二)Python语言的特点

Python 是一种面向对象、解释型、弱类型的脚本语言,它也是一种功能强大而完善的通用型语言。相比其他编程语言(比如 Java),Python 代码非常简单,上手非常容易。比如我们要完成某个功能,如果用 Java 需要 100 行代码,但用 Python 可能只需要 20 行代码,这是 Python 具有巨大吸引力的一大特点。

主要的特点还包括以下几个方面:

1.简单易学

Python最大的优点之一是具有伪代码的本质,它使我们在开发 Python程序时,可以专注于解决问题。

2.面向对象编程

Python既支持面向过程编程,也支持面向对象编程。与其他主要的语言如C++和Java相比, Python以一种非常强大又简单的方式实现面向对象编程。

3.可移植性强

由于 Python的开源本质,它已经被移植在许多平台上,程序几乎无须修改就可以在Linux、Windows、FreeBSD、Solaris、OS/2、Android平台中运行。

4.开源软件无须付费

Python是Free/Libre and Open Source Software (自由/开放源码软件)之一。也就是说任何人都可以自由地发布这个软件的拷贝,阅读它的源代码,对它做改动,把它的一部分用于新的自由软件中,而不需要支付使用费用。

5.拥有丰富的库

Python拥有庞大的标准库,可以帮助审计人员处理各种工作,包括访问数据库、模拟网页浏览器、电子表格处理、文本文件读取、声音识别等操作。除了标准库以外,还有许多流行的框架和应用库,如Flask、Django、Pytorch框架和Opencv图像库等。

当然,Python也存在解释型语言普遍存在的速度慢、源代码加密困难的弱点,但这些问题对审计工作影响不大。


二、Python语言在审计工作中的应用

近年来,大数据技术的研究和发展给审计工作带来了新的机遇和挑战。2015 年 12 月,中共中央办公厅、国务院办公厅印发《关于实行审计全覆盖的实施意见》指出“要求构建大数据审计工作模式”。《“十三五”国家审计信息化发展指导意见》也指出“各级审计机关要着眼审计事业的长远发展目标,在广泛应用云计算、数据挖掘、可视化技术的基础探索应用卫星遥感、超级计算等新技术、新方法”。

(一)审计实务界Python应用研究成果

在审计实务界也开始关注大数据技术在审计中的应用,其中不乏将Python作为审计工作中重要工具的研究成果。孙雅菲(2017)研究了基于大数据的审计分析过程,并以某医药电商企业为例,将Python作为分析工具,实现了数据统计、计算与绘图功能;孙梦蝶(2018)对基于Python的大数据审计方法进行了研究,提出审计人员应通过学习Python等技术,将丰富的审计工作经验与前沿分析技术相结合,运用各种深度挖掘、智能学习算法、可视化等技术实现大数据分析;张露(2019)研究了网络爬虫技术在大数据审计中的应用,并通过Python实现了网络爬虫,从“天眼查”网站获取工商信息;陈伟(2019)研究了大数据可视化分析技术,并将Python作为大数据可视化分析工具,对金融机构的股票交易数据进行分析;阳秋林(2020)分析了大数据环境下审计数据采集的方法,以Python为例研究了采集网络数据的原理和步骤。

(二)Python在大数据技术审计数据分析框架中的作用分析

根据基于大数据技术的审计数据分析框架可知,审计数据分析包括审计数据的采集、审计数据的预处理、数据分析及深度挖掘、成果展示等步骤。如图所示: 

大数据审计分析流程

1.在审计数据采集阶段,审计人员需要了解被审计单位的基本情况,明确数据采集的范围、内容和格式,而Python拥有多种数据库访问接口库,可以访问SQLServer、Oracle、MySQL、SQLite等审计常见的数据库,还可以快捷读取、合并Excel电子表格数据,使用Requests、Beautiful Soup等库可以便捷采集网页信息,引入其他库文件更可以将Word文件、PDF文件中的文字批量提取出来,实现非结构化文档的数据采集。

2.在审计数据预处理阶段,需要进行数据清洗、数据整理、数据集成等预处理步骤, Python语言引入Pandas包可以便捷地对数据进行操作,高效完成预处理工作。

3.在审计数据分析阶段,使用大数据技术对被审计数据进行关联分析、聚类分析,而Python拥有NumPy、Scipy等大量科学计算库,可以实现Apriori关联算法、FP-growth关联算法、K-Means迭代聚类、分层聚类、空间聚类等多种分析方法,还可以使用深度学习框架Pytorch和Tensorflow进行数据挖掘和实现人工智能,功能十分强大。

4.在审计数据分析成果展示阶段,使用数据可视化技术,增强被审计数据的展现效果,方便审计人员以更直接的方式观察数据,以快速发现被审计数据中的疑点。Python语言通过引入分词库、词云库、Matplotlib等库可以很容易地生成各式图表、词云等,还可以与百度地图、高德地图等地理数据交互,获得更直观地展示效果。

(三)当前国内部分审计机关Python应用情况

Python语言由于其开源免费、数据科学计算库众多、图形处理简便、可生成桌面程序等众多优点得到了审计人员的喜爱,一些应用成果也见诸报端。如南京市审计局用Python编程将关系型数据库技术、GIS技术、数据可视化交互分析等技术串接在一起,实现了地理信息交互可视化;扬中市审计局运用Python语言,研发了一套法规查询系统。系统将近三年来审计发现的所有问题存入Sqlserver数据库,基于Python编程语言关联SQL形成一套法规查询系统,实现了对问题定性法规、处理处罚法规依据的查询;安徽省怀宁县审计局应用Python语言对医院药品价格进行统计分析及结果展示,揭示了数据之间的关联,并通过丰富的可视化展示方法,直观呈现数据分析的结果,取得了很好的效果。

(四)Python语言应成为审计人员强有力的工具

由此可见,Python语言在审计工作中能发挥非常重要的作用,其不需要像Tableau等商业化可视化分析软件需要付费,也不用担心像MATLAB软件被外国禁用,还拥有丰富的扩展库、应用包,在大数据审计分析方面从数据采集、数据清理、数据分析、可视化展示等全过程中均能发挥重要的作用,能开发桌面应用程序,完成一些简单的审计应用。而且Python语言的培训资料非常丰富,便于审计人员学习。再加上审计署也将Python语言的学习和使用列入了新一期计算机审计中级培训大纲中,因此,审计人员应加强Python语言的学习,将其变为一个重要的审计分析工具。


三、在审计工作中应用Python语言的建议

(一)加强培训学习

在培训学习方式上可以采取购买专业书籍、登录学习强国等网上培训APP 、邀请大专院校的教师开设学习讲堂等方式;在培训层次方面可根据工作需要,按照涉猎型、应用型、研究型等分类,培训不同层次的审计人员,以充分发挥Python语言的应用效果。

(二)组建数据分析应用团队

通过将审计机关中的业务骨干集中起来,组建数据分析应用团队,充分发挥“总体分析、发现疑点、分散核查、系统研究”的数字化审计方式,共同研究利用Python语言解决审计工作中遇到的各种难题,整理出一套Python语言大数据审计数据分析操作流程。还可以采取设立研究课题的方式,分阶段分步骤对一些前沿审计技术理论在审计实务中的Python应用进行研究。

(三)加强案例介绍及经验交流

通过开展案例介绍和经验交流,可以丰富审计人员的知识、开拓他们的思路、增强他们的能力。可以通过定期征集Python应用案例、举办项目应用经验交流会等方式,分专题展示Python在审计工作中的应用实例和成果,进一步推进Python语言在审计中的应用。