随着国家战略对“新基建”实施提上日程,大数据将会得到进一步推广和应用。
那么在作为大数据开发语言之一的Python语言,又有哪些用武之地呢,我们可以用一张图来简单阐述。
一、网络爬虫
网络爬虫是Python比较常用的一个场景,国际上,google在早期大量地使用Python语言作为网络爬虫的基础,带动了整个Python语言的应用发展。
requests模块在python内置模块的基础上进行了高度的封装,从而使得python进行网络请求时,变得人性化,使用Requests可以轻而易举完成浏览器可有的任何操作。
BeautifulSoup是用Python写的一个HTML/XML的解析器,它可以大大节省你的编程时间。
Selenium是一个用于web应用程序自动化测试的工具,直接运行在浏览器当中,支持chrome、firefox等主流浏览器。可以通过代码控制与页面上元素进行交互,也可以获取指定元素的内容。
Scrapy是用python实现的一个为了爬取网站数据,提取结构性数据而编写的应用框架。使用Twisted高效异步网络框架来处理网络通信。
二、数据处理
Python有很完备的生态环境。大数据分析中涉及到的分布式计算、数据可视化、数据库操作等,Python中都有成熟的模块可以选择完成其功能。
对于Hadoop-MapReduce和Spark,都可以直接使用Python完成计算逻辑,这无论对于数据科学家还是对于数据工程师而言都是十分便利的。
hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储Hadoop中的大规模数据的机制。
三、web开发
Python的诞生历史比Web还要早,由于Python是一种解释型的脚本语言,开发效率高,所以非常适合用来做Web开发。
Django是Python编程语言驱动的一个开源模型-视图-控制器(MVC)风格的Web应用程序框架。使用Django,我们在几分钟之内就可以创建高品质、易维护、数据库驱动的应用程序。
Flask是一个微型的Python开发的Web框架,基于WerkzeugWSGI工具箱和Jinja2模板引擎。
Tornado是一种Web服务器软件的开源版本。Tornado和主流Web服务器框架有着明显的区别,它是非阻塞式服务器,而且速度相当快。
四、数据分析
对于数据分析师来说,不仅要自己明白数据背后的含义,而且还要给更直地展示数据的意义。
Scipy是一组专门解决科学计算中各种标准问题域的包的集合。
Numpy是python科学计算的基础包。
Pandas处理上千万的数据是易如反掌的事情,同时随后我们也将看到它比SQL有更强的表达能力,可以做很多复杂的操作,要写的code也更少。
matplotlib是最流行的用于绘制数据图表的python库。pyecharts是一个用于生成Echarts图表的类库。
Echarts是百度开源的一个数据可视化JS库。用Echarts生成的图可视化效果非常棒,pyecharts是为了与Python进行对接,方便在Python中直接使用数据生成图。
jupyter是一种交互式计算和开发环境的笔记,ipython命令行比原生的python命令行更加友好和高效,还可以运行web版的界面,支持多语言,输出图形、音频、视频等功能。
五、人工智能
人工智能是现在非常火的一个方向,AI热潮让Python语言的未来充满了无限的潜力。现在释放出来的几个非常有影响力的AI框架,大多是Python的实现,为什么呢?
因为Python有很多库很方便做人工智能,sklearn做机器学习的,pybrain做神经网络的。
在人工智能大范畴领域内的数据挖掘、机器学习、神经网络、深度学习等方面都是主流的编程语言,得到广泛的支持和应用。人工智能的核心算法大部分还是依赖于C/C++的,因为是计算密集型,需要非常精细的优化,还需要GPU、专用硬件之类的接口,这些都只有C/C++能做到。而Python是这些库的APIbinding,使用Python是因为CPython的胶水语言特性,要开发一个其他语言到C/C++的跨语言接口,Python是最容易的,比其他语言的门槛要低不少,尤其是使用Cython的时候。
六、其它应用。
Python对于服务器运维而言也有十分重要的用途。由于目前几乎所有Linux发行版中都自带了Python解释器,使用Python脚本进行批量化的文件部署和运行调整都成了Linux服务器上很不错的选择。Python中也包含许多方便的工具,从调控ssh/sftp用的paramiko,到监控服务用的supervisor,再到bazel等构建工具,甚至conan等用于C++的包管理工具,Python提供了全方位的工具集合,而在这基础上,结合Web,开发方便运维的工具会变得十分简单。
数据库编程可通过遵循PythonDB-API(数据库应用程序编程接口)规范的模块与MicrosoftSQLServer,Oracle,Sybase,DB2,MySQL、SQLite等数据库通信。Python自带有一个Gadfly模块,提供了一个完整的SQL环境。
七、总结:
看到这么多应用场景是不是觉得Python非常厉害。Python因为入门快,简单学习,有很丰富的支持库可以被直接调用以高效地完成不同需求的工作,所以越来越多的人开始加入Python大*。