Python现在很火,火到什么程度呢?经常在app里看到一个视频广告,形式略有不同,但一般只有两个角色,一个凶猛的主管和一个麻烦的下属,凶猛的主管分配了一个很紧急的工作,麻烦的下属挠挠头和心里憋屈,说用电子表格搞不出来,凶猛的主管这时候更凶了,啪的一声操作,Python只需要5分钟就搞定了,赶紧学起来吧!我觉得这个广告最有意思的地方就是两个角色西装革履。乍一看,他们很不像程序员,更像是坐惯了,一脸严肃。在CBD吹空调的商务人士,我以前一直以为是广告策划的bug,每次看到这个反差都被逗笑了,直到有一天,一个金融界的朋友问我Python是不是简单易学,没想到Python真的火了。先说一点吧,虽然现在不管是圈内还是圈外,只要说到数据分析、机器学习甚至人工智能,好像都得叫Python。然而,这些字段并不是Python固有的。人工智能。人工智能领域有很多种语言。如果你在几年前学习人工智能,你可能连Python的影子都看不到。大家普遍推荐LISP和Prolog。盖茨,尤其是Prolog,似乎除了人工智能,其他地方都看不到,但是Prolog在规则推导上有奇效,大家都一直在用。现在呢?我现在不多提了。第一,因为基于统计学的机器学习一直占据着人工智能的头把交椅,规则推导的并不多。其次,Python正在迅速崛起,被誉为“人工智能第一语言”,甚至可以在Python中完成规则推导。另一个例子是数据分析。早期,R语言一统天下。后来,R和Python分成了两个世界。现在人工智能来势汹汹,R完全招架不住Python的飞速发展,所以之前的这些浪潮都是理所当然的。在沙滩上。然而,结果就是这样,现在我们不得不问:为什么Python能够成为“人工智能第一语言”?01Python有什么优点现在Python很火,所以介绍Python的文章那么多,大家一定看累了貌似介绍Python简单易用,灵活性高,但是好像没说什么。让我们脚踏实地地谈谈。在我看来,Python最大的优势就是“背着包打卡”。如果你去租房子,肯定会看到一个词,叫“背着包入住”。这个词经常被作为租房的重要卖点,也反映出消费者对于租房的一个重要需求。什么是托运行李?这个词的准确定义在租赁行业是有争议的。很多人都疑惑,家具家电一整套,是不是就跟拎包入住一样。不过,意思很明确。作为房客,我什么都不用准备,只需要把行李拉过去就可以入住了。这是托运行李办理登机手续。也就是说,有很多出租屋不符合拎包入住的标准。本来只是想满足“住”的需要,却因为没有租房条件,只好先做客装修师傅。在我可以做我想做的事情之前做一些其他的准备工作。好的,回到编程语言。很多人喜欢从语言风格、语法设计,甚至语法糖的角度来比较编程语言的优劣。但是,我更看重的是另一件事:生态环境。以前我们聊C++有多火,然后聊Java有多火,现在轮到Python了。这些“网红语言”成功的背后是什么?真的只是因为编程语言本身的优秀设计吗??在我看来,一门编程语言是否流行,设计当然是一个重要因素,但生态环境的成熟度可能是更直接的原因。关于编程,我们经常听到的一个问题是,A语言早就过时了,现在有了新的B语言,为什么现在还用A语言开发项目呢?这个问题通常有两种可能,一种是项目已经用A语言做了很多开发,换成B语言需要一栋高楼;另一个是B语言还是太新了,对于某个专业领域还没有现成的或者好用的库,这也需要高楼大厦。从地面升起。这两者都可以归结为同一个原因:使用B语言不允许你带着行李去checkin。Python的成功也是因为能够拎包入住。回想一下之前的广告,说用Python只需要5分钟就可以完成看似无穷无尽的工作。为什么?不是因为Python语言的精妙设计。别人要写10000行,Python只需要一行。但是Python有非常成熟的生态环境。如果你放弃了一个任务,你不需要从头开始使用Python。只要找到对应的库,一句import加几行代码,结果就出来了。从头到尾,只需要专注于任务本身,无需考虑编程语言是如何处理实现的,没有任何杂七杂八的事情浪费时间。这称为行李托运。02数据科学方向流行Python包介绍。大家都知道Python在人工智能和大数据方向非常火。但是,真的有任务来了。应该使用哪些包?很多介绍Python的教程真的只介绍Python语法,语法当然很重要。想要使用Python,首先要掌握语法。但是,我们之前也介绍过它。Python的优势在于它有很多成熟的包,让你“拎着包打卡”,也就是可以专注于任务本身。因此,如果我们要使用Python,不仅需要掌握Python的语法,还需要知道有哪些有用的Python,以及它们的用途。Python的好用包实在是太多了,涉及的领域非常广泛,一一罗列出来会很麻烦。这里我们只介绍在数据科学和人工智能中经常使用的包。第一个是熊猫。这是一个数据分析用的比较多的包,尤其擅长各种格式化的数值分析。上面提到的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,它可以为你提供龙服务。
