当前位置: 首页 > news >正文

开发人工智能为什么要用Python?

导读:大家一定看腻了诸如Python简单易用、灵活性高之类好像说了很多,又好像什么都没说的介绍。我们说点接地气的——风头正劲的Python。

今天聊一个有意思的话题,开发人工智能为什么要用Python。

现在Python很热,热到什么地步?我经常在App里看到有一条视频广告,形式略有不同,但总的来说角色就两个,一个很凶的主管和一个很困扰的下属,很凶的主管布置了一个很急的活,困扰的下属挠耳挠腮,委屈说用电子表格根本不可能赶得出来,很凶的主管这时更凶了,啪啪啪一通操作,说用Python只要5分钟就出来了,还不快去学!

我觉得这条广告最有意思的地方,在于两个角色都西装革履,一看就很不程序员,更像是习惯一脸严肃坐在CBD里吹冷气的商务人士,以前我以为这是广告策划的一个Bug,每次看到这里都被这反差萌逗乐,直到有一天,有位做金融的朋友问我说Python好不好学,我才知道Python真的已经火出圈了。

先说一点,虽然现在不管圈里圈外,只要说到做数据分析、机器学习甚至人工智能,好像已经言必称Python,不过,这些领域并非天生就得是Python,别的不说,就说人工智能。

人工智能领域出了很多语言,如果你早个几年学习人工智能,可能连Python的影子都看不见,大家一般推荐的都是LISP、Prolog,哪怕是业内人士看这些语言都是又古老又偏门,尤其是Prolog,好像除了人工智能就没别的地方能见到,但是Prolog做规则推导有奇效,大家也就一直沿用下来了。现在呢?现在不怎么提了,一来是因为基于统计的机器学习一枝占据了人工智能的顶流位置,规则推导说的不多,二来是Python迅速崛起,人称“人工智能第一语言”,就连规则推导都可以用Python来做。

另一个例子是数据分析,早前都是R语言的天下,后来是R和Python两分天下,现在人工智能的东风一起来,R完全无法招架Python 迅猛发展的势头,所以这些前浪就理所当然被拍在了沙滩上。

但是,这是结果,现在我们要问的是:为什么Python能成为“人工智能第一语言”呢?

01

Python有哪些优点

现在Python很热,所以介绍Python的文章特别多,大家一定也看腻了诸如Python简单易用、灵活性高之类好像说了很多,又好像什么都没说的介绍。我们说点接地气的。

在我来看,Python最大的优点就是“拎包入住”。

如果大家去租房,一定能看到一个词,叫“拎包入住”,这个词经常作为租屋的重要卖点,也反应出消费者对租屋的一个重要需求。什么叫拎包入住?租房行业对这个词的准确定义有争议,很多人在纠结家私家电齐全到底是不是等同于拎包入住,不过意思是清楚的,我作为租客,啥都不用准备,只需要把行李拉过来就可以住下了,这就是拎包入住。

换句话说,有不少租屋是达不到拎包入住的标准的,本来我只是要满足“住”的需要,可是因为租屋条件有欠缺,导致我不得不先客串一回装修师傅,需要先做一些其它的准备,然后才能做我想要做的事。

好了,说回编程语言。很多人喜欢从语言风格、语法设计甚至语法糖等等角度来比较编程语言的优劣,不过,我更看重另一样东西:生态环境。

以前我们说C++多么多么爆红,后来又说Java多么多么爆红,现在又轮到了Python,到底这些“网红语言”的成功背后靠的是什么?真的只是因为编程语言自身的优秀设计吗?

我认为,一款编程语言是否流行,设计当然是很重要的因素,但生态环境的成熟可能是更为直接的原因。我们经常能听到的一个关于编程的问题是,A语言早就已经过时了,现在已经有了新兴的B语言,为什么现在还要用A语言开发项目呢?这个问题通常有两种可能,一种是项目已经用A语言做了大量开发,替换成B语言又得高楼平地起,另一种是B语言还太新,某个专业领域还没有可用的或者好用的库,同样也得高楼平地起。这两种都可以归结为同一个原因:使用B语言并不能拎包入住。

Python的成功,同样是因为能够拎包入住。

回想一下前面的广告,说用Python只要5分钟就能把看似做不完的工作做完,为什么?不是因为Python语言设计有多么多么精巧,别人要写一万行,Python只要一行就搞定,而是Python有非常成熟的生态环境,你扔一个任务过来,用Python不用从头开始,只要找到对应的库,一句import加几行代码,可能结果就出来了。从始至终,你都只需要关注任务本身,而不需要思考编程语言怎么处理实现,没什么杂七杂八的东西需要浪费时间。这就叫拎包入住。

02

数据科学方向的热门Python包介绍

都知道Python在人工智能、大数据方向很热,但是,真的有任务来了,究竟该用哪些包呢?很多介绍Python的教程,是真的就只介绍Python的语法,语法当然很重要,要想使用Python,首先当然得掌握语法。但是,前面我们也进行了介绍,Python的优势在于拥有许多成熟的包,让你可以“拎包入住”,也即可以专注于任务本身,所以,我们要用Python,不但需要掌握Python的语法,同时也要了解都有哪些好用的Python,都可以用来做什么。

Python好用的包非常多,覆盖领域也是五花八门,都列出来反而显得凌乱,这里我们只介绍数据科学和人工智能方向用得多的包。

首先是pandas。这是数据分析用得非常多的包,尤其擅长各种格式化数值分析,前面提到的Python广告只说用Python,并没有说明该使用什么包,不过,既然是替代电子表格进行数据分析,想必肯定会用到pandas。

接着是scikit-learn,这个包写法很多,也有人喜欢简写为sklearn。这是个著名的机器学习包。scikit-learn非常好用,推荐大家都试一试,尤其是觉得机器学习数学很难,一看到机器学习几个字就产生抵触心理的同学。

为什么这么说呢?我们都知道,机器学习不是一种方法,而是一个大框,里面堆满各种算法模型,譬如线性模型、树形模型、支持向量机模型、以及现在在机器学习领域非常热门的神经网络模型。每一种模型背后都依靠一套复杂的数学逻辑来支撑模型运作。在很多人看来,光是看懂机器学习模型的数学表达式就已经十分费劲,需要很深的数学功底,更不用说手推公式和实战中使用了。于是,很多人觉得机器学习“可远观而不可亵玩焉”。

当然,这里面有几个理解误区。是不是需要很深的数学功底才能明白机器学习模型的原理呢?未必,机器学习确实用到很多数学知识,不过,我经常和大家分享的一个观点是:不妨把数学看作只是一种语言,是一门外语,机器学习的运行原理,是用这门外语来描述,所以我们不太容易看懂。那怎么办呢?跨国交流我们可以找翻译,同样,只要有人看懂了机器学习这里的数学语,然后“翻译”成中文,也就方便大家看得懂了。这件事我自己做了些尝试,写了一本书叫《机器学习算法的数学解析和Python实现》,大家感兴趣可以翻翻。

另一个误区就是得把机器学习模型的数学原理都学懂弄通了,最好能手推一遍公式,然后才能知道怎么使用。这个理解符合我们长期以来形成的按部就班的印象,不过,就我看来,使用机器学习和开车很像,没必要要求司机都学会造车了才能开车,况且,造车和开车很可能还是并不相同的两条学习曲线,毕竟老技工未必就是老司机。如果只是想用机器学习解决问题,完全可以另辟蹊径积累经验。方法是什么呢?就是使用scikit-learn,这个包把常用的热门的机器学习模型统统做了非常良好的封装,我们完全可以像调用黑盒函数一样,操作各种机器学习模型来解决实际问题。

最后就是Pytorch、Tensorflow和Keras这几个网红深度学习包,Python这一轮走势长红,这几个深度学习包居功甚伟,在背后贡献了大量流量。现在是深度学习时代,大家都知道深度学习能解决很多以前无解的问题,可是理论设计出来的模型,还得编程实现才能使用。怎么实现呢?就用这几个包,它们把深度学习的各个部件都已经封装好了,使用者只需要像拼装乐高积木一样,把部件拼装成完整的模型。

篇幅有限,我就简单介绍到这,当然,Python的库就像是一个工具仓库,只要你想得到的工作,都可能已经有不止一个成熟的Python库可供选择,譬如说一些细分的机器学习任务,如自然语言处理NLP,就还有好几个专门做NLP领域任务的Python包,又譬如说大数据用到的一些基础组件,如Hadoop、Spark,同样也有专门的Python对口服务。

现在大家应该感到Python真是个宝藏男孩,应该就能更为理解,为什么开发人工智能要用Python,一项人工智能的工程可能涉及到多个环节,而如果选择使用Python,它可以给你提供一条龙服务。不过,好处我们已经清楚,在实战中到底要怎么使用呢?也就是说,我们安装好了Python,也打开了IDE,现在,眼前的任务要从哪里开始着手呢?

这是个很大的问题,知道Python好和知道Python好用,中间是需要大量的实战作为桥梁,我推荐大家看一本书,叫《Python程序设计:人工智能案例实践》,这本书拿在手上就像一部字典,书里包含500多个实战案例,看完相信就能对这个问题有更清晰的答案。

 

 

03

作者简介

莫凡,网名木羊同学。娱乐向机器学习解说选手,《机器学习算法的数学解析与Python实现》作者,前沿技术发展观潮者,擅长高冷技术的“白菜化”解说,微信公众号“睡前机器学习”,个人知乎号“木羊”。

 

扫码关注作者

04

推荐阅读

01

《机器学习算法的数学解析与Python实现》

长按识别二维码购买

推荐理由

有趣、易懂、不枯燥,看得懂、学得会的机器学习入门书。全书用白话讲解,帮你从生活案例中理解算法,发现算法的乐趣,再把算法应用到机器学习中,让你零基础掌握算法精髓,快速进入AI开发领域。

02

《Python程序设计:人工智能案例实践》

长按识别二维码购买

推荐理由

极简入门Python、数据科学和AI,读这一本就够了!数百万用户的企业培训机构Deitel & Associates创始人撰写,45年编程语言培训经验沉淀。让你用最少量的代码完成538个示例,快速获得动态可视化的结果,把Python、数据科学和AI技术融合应用,解决实际问题。

 


扫码关注【华章计算机】视频号

每天来听华章哥讲书

更多精彩回顾

书讯 | 7月书讯(下)| 读书开启下半年

书讯 | 7月书讯(上)| 读书开启下半年

资讯 | 《数据安全法》表决通过!最新解读来了

书单 | 8本书助你零基础转行数据分析岗

干货 | 当机器学习遇上隐私保护,聊聊联邦学习和分布式机器学习

收藏 | 终于有人把卷积神经网络(CNN)讲明白了

上新 | 【新书速递】打通数据科学三要素——数据科学实战性手册

赠书 | 【第62期】学会数据分析,抢占职场风口机遇

点击阅读全文了解更多AI好书

相关文章:

  • 【新书速递】首本零代码书籍问世
  • MySQL 十大常用字符串函数
  • 手把手教你用Python求最大值和最小值
  • TIOBE 7 月编程语言排行榜:C、Java 和 Python 争夺第一
  • 【新书速递】嵌入式Linux驱动领域开发的实战指南
  • 2021半年盘点,这些经典更新了!
  • ​2021半年盘点,不想你错过的重磅新书
  • 【第63期】机器人时代已来!推荐几本机器人学硬核好书
  • Netflix正在搞的混沌工程到底是什么?终于有人讲明白了
  • 一文了解滴滴与蚂蚁金服开源共建的SQLFlow
  • 详解数据资产的8大重要特征
  • 火到不行的零代码都在哪些行业应用?
  • 终于有人把生成对抗网络(GAN)讲明白了
  • 如何从数据分析这个卷王行当转型数据科学
  • 终于有人把p值讲明白了
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【剑指offer】让抽象问题具体化
  • angular2开源库收集
  • LeetCode算法系列_0891_子序列宽度之和
  • MYSQL 的 IF 函数
  • OSS Web直传 (文件图片)
  • Python打包系统简单入门
  • Redis学习笔记 - pipline(流水线、管道)
  • 番外篇1:在Windows环境下安装JDK
  • 官方解决所有 npm 全局安装权限问题
  • 聊一聊前端的监控
  • 区块链将重新定义世界
  • 如何利用MongoDB打造TOP榜小程序
  • 携程小程序初体验
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • ​queue --- 一个同步的队列类​
  • # 达梦数据库知识点
  • ###项目技术发展史
  • #NOIP 2014#Day.2 T3 解方程
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (6)STL算法之转换
  • (C++17) optional的使用
  • (C语言)逆序输出字符串
  • (JS基础)String 类型
  • (第27天)Oracle 数据泵转换分区表
  • (分布式缓存)Redis持久化
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (四) 虚拟摄像头vivi体验
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)程序员技术练级攻略
  • ./和../以及/和~之间的区别
  • .NET 反射的使用
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • [ C++ ] 继承
  • [AIGC 大数据基础]hive浅谈
  • [Asp.net MVC]Asp.net MVC5系列——Razor语法
  • [autojs]逍遥模拟器和vscode对接
  • [C#]winform部署yolov9的onnx模型