人工智能为Python火热增长动力
借着人工智能的东风,Python在这两年逐渐火了起来,Python在编程语言排行中的不断攀升,不得不说有着人工智能的很大功劳。凭借Python简洁易于上手的语法和丰富的扩展,Python在人工领域的应用越来越广泛。
越来越多的培训机构也以“Python”和“人工智能”作为旗号和噱头,打着“21天精通Python,3个月掌握人工智能”的口号,收割了一波又一波迷茫的应届毕业生和在其他行业郁郁不得志的转行从业人员。
仿佛学了Python就会人工智能,又仿佛要学习人工智能就必须学习Python。
诚然,Python各种第三方机器学习、神经网络模块的诞生大大降低了对机器学习算法、模型的建构、训练和测试的难度。使得普通人通过简单地调用模块的API就能够实现可进行预测的某某神经网络。
但是Python不只是为了人工智能而生,人工智能也不只是Python的专属。Python从上个世纪90年代诞生至今,从玩具语言,到万能语言。它所能带给我们的,不仅仅是人工智能的风口热点,作为一门胶水语言,其在其他领域的发展和应用也十分显著和高效,其中一些方面还能够与人工智能紧密地结合在一起。也值得我们去运用和了解。
如果仅仅局限Python在人工智能领域的应用,未免浪费了Python大好的生态环境。下面,跟随州的先生(微信公众号:zmister2016)一起来了解一下,Python在其他5大领域的应用。
网络爬虫——大数据时代,没有数据怎么行?
都说现在是大数据时代了,大数据,大数据,没有海量的数据怎么能够称之为大数据。大数据的来源大概有这么几种:
● 企业内部原始积累数据。经过长年累月的业务沉淀,企业内部的数据库中积累的海量的数据可供应用;
● 外部采集数据
外部采集数据,通过各种软件(八爪鱼、火车头等采集器)直接进行数据采集,或者使用各种编程语言编写网络爬虫进行数据采集。
说到使用编程语言编写网络爬虫,就不得不提到Python的简便、高效和、强大了。在几年之前,大多数网络爬虫还是使用java进行编写的,但是随着Python生态的不断壮大,其简洁的语法搭配强大的功能,使得Python在编写网络爬虫有着得天独厚的优势。
从HTTP请求,到页面数据解析,到数据存储,甚至于其间的模拟登陆,验证码识别,代理IP使用,并发请求都能够很好的进行处理。
州的先生(微信公众号:zmister2016)也曾在博客中写过一个简单的Python爬虫入门系列文章:https://zmister.com/archives/category/scrap/pythonscrapbook 其PDF版的文章合集可以在公众号内(微信公众号:zmister2016)回复关键词“爬虫教程电子书”进行获取。
Web开发——让世界看到你的作品
虽说在Web开发领域,PHP占了大头,世界上绝大多数的网站都是使用PHP开发的,但是这也丝毫掩盖不了Python在Web开发领域的光彩。
在Python中进行Web开发,主要依赖于各个Web开发框架,流行的有:
● 功能强大,采用MTV架构的Django框架;● 轻量简洁的Flask;
● 性能超群的tornado;
……
使用这些框架可以快速地根据自己的需求开发出一个合格的Web应用。小到个人博客,大到商品化的产品,Python中的Web框架都能够胜任。
州的先生主要使用Django框架进行Python的Web开发,相较于其他的Python Web框架,Django有几个显著的特点吸引了我:
● 功能全面,不需要安装其他的第三方模块进行基础功能的应用;● 顺手的ORM,数据模型异常的强大和好用;
● 强大的后台系统,自带强大的后台管理系统,一些不复杂的后台管理都可以通过它来实现;
……
使用Django框架进行开发的Web应用中比较出名的有Instagram,一个国外的移动端照片视频分享应用。其使用Django作为应用后端服务,支撑了7亿的月活用户。
Instagram Logo
数据分析——看到数据的背后的真相
数据分析也是随着大数据的概念再次兴起的一个领域。有了大量的数据,自然需要对其进行数据清理、数据提取和数据分析。
在科学计算和数据分析领域,Python一直没有缺席。在这些方面都有非常成熟的第三方模块和活跃的社区,使python成为数据处理任务的一个重要解决方案。
NumPy和Pandas等模块,为数据处理提供了非常大的便利。
matplotlib、pyecharts等模块也是非常优秀的数据可视化模块。
Jupyter Notebook模块则为数据分析人员提供了一种全新的数据分析流。
很多人通过Python编写爬虫采集数据(影评、歌评,各种评)之后,直接就可以继续使用Python的pandas模块分析采集下来的数据,并用诸多数据可视化模块生成漂亮的报表和图表,最后以一篇图文并茂的文章《XXX用Python爬取了XXX的XXX条数据,告诉你不一样的XXX》,风靡朋友圈。很赞的。
GUI开发——向更多人分享你的编程成果
如果代码永远都只是停留在代码层面,那么其能够实现的功能永远都不方便传播和供大多数人使用,所以将其通过桌面程序包装出来,就很有必要。
比如我们使用Python写了一个自动签到小程序,写了一个特定网站的采集程序,嗯,觉得很好用,想分享给同事、同学或者其他小伙伴。如何包装这个程序,给他们都能使用呢,最好的做法还是编写打包出GUI的图形用户界面桌面程序,直接将打包好的程序文件发送过去。既方便编写者传播,也方便使用者使用。
Python在编写GUI程序方面,有多种选择,都能够实现不错的功能。其中:
● Tkinter,是Python的内置模块,无需安装第三方的模块,就可以使用,实现编写一些简单,交互不复杂的GUI程序。● PyQt5/PySide2:,Qt的Python封装包,功能强大,可编写复杂的GUI程序。
● WxPython,是wxWidgets的Python封装包,与PyQt5类似。
● Kivy,新兴的跨平台GUI开发模块,支持移动端的GUI开发。
……
像州的先生,就通过PyQt5将很多爬虫程序和其他的程序编写为图形用户界面的工具,极大的方便了自己和同事的工作。在gitchat平台,州的先生也曾分享过通过PyQt5编写一个用于淘宝客的微信机器人程序。详情可以点这里查看:如何使用Python和PyQt5编写一个微信群聊导购机器人
目前州的先生博客(https://zmister.com)也在持续更新一个基于PyQt5的Python GUI基础教程,有兴趣的同学可以查看。
州的先生编写的某爬虫桌面程序
最后…
上面介绍了4个州的先生在日常使用Python中经常会涉及到的一些领域的应用。其实除此之外,还有很多领域都有Python的身影,比如网络安全,渗透测试,自动化运维,等等。
Python是一门胶水语言,这是它的劣势,同时也是它的优势,通过各种扩展,Python能够实现绝大多数领域的应用。其作为一门通用性的编程语言,适合衔接不同的领域,实现所谓的All in Python。
原文发布时间为:2018-11-8
本文作者:州的先生
本文来自云栖社区合作伙伴“Python爱好者社区”,了解相关信息可以关注“Python爱好者社区”。