如何看待潘石屹搞python_潘石屹考了99分的Python,到底是一种什么存在?

去年,当地产大佬潘石屹要把学习Python作为生日礼物送给自己的时候,微博上还多是一阵调侃之声。可能正是印证了Python程序员们常常挂在嘴边的“人生苦短,就学Python”的口头禅,时年56岁的小潘同学要再一次抓住“青春”的尾巴吧。

为督促自己学习,小潘还在微博专门设置了一个#潘石屹用Python解决100个问题#的话题,鼓励全民围观,监督他的Python学习计划。显然,几个月的坚持,让小潘同学的Python学习有了初步的成果。5月16号,他在参加完NCT全国青少年编程能力等级测试 Python 编程一级考试后,晒出了99分的优秀成绩单。

至于为啥要学Python,朴实的潘总在接受媒体采访时表示,人到50岁以后一定要学点新东西,以防止老年痴呆。

但为什么选择要学一个自己完全不懂的Python语言,这还是他在请教了李开复之后得到的启发:Python语言是现在全世界使用最多的一个编程语言,也是非常成熟的一个语言。

最主要的呢?

未来社会是一个人工智能的社会,学习Python是打开人工智能时代的钥匙。

Python对于人工智能很重要,对很多关注AI的人们来说想必是个基本常识,但是对于大部分并非专业从事编程的人,比如我来说,Python到底有多重要,其实还是一头雾水的。

于是我默默地拿起了一本《Python编程:从入门到实践》……

额,短期学会有点不太现实。我还是本着谦虚好学的态度,梳理下专业人士的观点,来尽可能地搞清楚“Python之于AI”是一种怎样的存在吧?

Python为何能这么流行?

衡量一门编程语言受欢迎程度的重要指标,可以参考其在Stack Overflow(一家IT问答社区)上面的标签数量。下图是近10年来全世界最主要的几种编程语言在社区平台的问答帖子中的标签数量的趋势图。

从2012年之后,Python就一直处在稳步上升的趋势,与此相对照的是其他主流编程语言,除了R语言一直处于停滞不前的状态,其他编程语言则是在不同程度地稳步下降。

这一指标确实很好地印证了Python的流行程度和普及度。根据专业人士的说法,Python具有以下优点:

一、Python的成熟和易用。

实际上,从1991年,van Rossum向全世界发布了第一个版本的Python至今已经有30岁的高龄了。但Python却没有因为这种计算机时代略显“古老”的年龄而走向衰败,反而因为Python在可用性和功能性上面取得的平衡,让越来越多的程序员开始使用这一语言。

一方面简单易用,一方面又可以用来开发大型的应用程序,这两个因素结合,正是 Python在上世纪90年代逐渐取得成功的原因。现在,Python语言已经形成一个庞大的成熟社区,一旦人们在编写Python代码遇到任何问题,都可以从中找到有用的答案。

二、Python对于初学者非常友好。

从一开始,Python就提供了清晰而明确的语法,使得发人员更容易阅读和理解代码,这是众多程序员喜欢上Python的主要理由。

用三种语言来显示“Hello World!”为例,相比起C语言和Java,Python更符合人类直觉的语言形式,对新手而言也更加友好,只需要一句“print”(发布)就可以了。

用van Rossum的原话来说就是,一门编程语言不仅要告诉计算机该做什么,还要便于在开发者之间传递思想。那还有什么比使用一种 “符合人性”的编程语言来实现更好的思想交流呢?

第三,Python的功能足够强大。

经过如此久的迭代开发,Python早已拥有各种各样的支持库。用一个形象的比喻来说,Python就像是编程界的“瑞士军刀”,可以在各种各样的场合里用到。比如处理矩阵和向量数据的NumPy、做技术和工程方面的计算的SciPy、数据处理和分析的Pandas以及支持数据可视化的Matplotlib等等支持库。

需要注意的是,正是Python在支持库上面的功能扩展,与AI技术发展息息相关。这些正是我们接下来要讨论的问题。

为什么Python更适合人工智能?

我们知道第三次人工智能浪潮的兴起得益于机器学习,特别是深度学习算法的成功。而训练一个AI算法模型就需要为其喂养大量的数据。在前期的AI发展中,“有多少智能就有多少人工”就是这一AI训练过程的典型描述。在这一过程中,Python因其有强大的数据处理的生态库,因而能够为其提供数据的访问和转换,实现AI算法的快速“喂养”。

举个例子,机器学习或者深度学习的算法模型所要处理的数据实际上都是矩阵和向量。而NumPy则正好支持维度数组与矩阵运算,结合Python内置的math和random库,可以轻松通过简单代码实现矩阵的转置、求逆、求和、叉乘、点乘和分解等功能。

而且,NumPy在实现层对矩阵运算做了大量的并行化处理,通过数学运算的精巧,而不是让用户自己写多线程程序,来提升程序效率。有了Python这种强大的数据计算和处理能力,开发者就可以把工作重心放在模型和算法上,不用操心运行的问题了。

就像上面所说,Python其实也是AI技术的“瑞士军刀”。对于AI训练所需要的数据获取、分析、建模等流程也都可以通过Python的各类支出库来解决。

(用Python训练和使用一个logistic Regression模型)

比如,像requests、scrapy这类网络爬虫库,可以从网络上获得源源不断地海量数据(603138,股吧);像scipy、pandas、matplotlib以及刚刚介绍的NumPy,帮助开发者进行科学计算、数据处理、绘图以及矩阵计算等操作;而像nltk、keras、sklearn这类用于建模的支持库,即可用于NLP、DL的模型搭建,实现一个完整的AI算法模型。

此外,Python也可以用于处理高效的C/C ++算法,以及CUDA/cuDNN的包装语言,这让现有的机器学习和深度学习库可以在Python中高效运行的原因之一。

总体而言,Python成为一门理想的集成语言,可以让开发者关注真正的问题,而不是花很多时间在细节实现上。

Python语言十全十美吗?

当然不是,像任何一门编程语言一样,Python也会有自身的缺陷。

首先,Python的执行速度不够快。由于Python是一门解释型语言。编程语言和机器语言之间需要解释器的翻译,而Python是一次执行一个任务,因而需要每翻译一行程序叙述就立刻运行,然后再翻译下一行再运行,这样就导致Python要比像C、Java这类编译型语言执行速度慢的原因。

但对于现在的服务器算力来说,Python速度的劣势几乎没有什么影响,因为对于开发者而言根本察觉不到明显的延时。此外,还可以通过和C语言的结合,将需要优化速度的应用转换为编译好的扩展语言,并在系统中使用Python脚本将这部分应用连接起来,以提高程序的整体效率。

其次,Python源代码加密困难。Python不像编译型语言的源程序会被编译成目标程序,而是会直接运行源程序,因此对源代码加密比较困难。

此外,Python不太适用于移动开发。Python在设计时并没有考虑到移动开发,因而还不支持在非x86硬件平台上编译代码,而且Python的测试套件很容易在移动平台崩溃。随着移动设备的数量和流量开始远远超过PC设备,Python也应该要努力进化以支持移动平台了。

尽管Python在未来几年内会依然兴盛,但是一些潜在的竞争对手也正在成长——Rust、Go以及Julia。这些语言都各自超过Python的优点,也能修补Python的薄弱环节,正在成为Stack Overflow近几年受欢迎趋势上升很快的三种语言,但是零点几的份额还不足以挑战Python。

然而总体上,Python因其开放的开源社区以及全球最多的开发者生态,使其成为近十年来最成功的编程开发语言之一。

如果列举Python的广泛应用,我们可以列举出一系列的名单。包括人工智能学习框架如Google的TensorFlow?、Facebook的PyTorch、开源社区的神经网络库Karas以及云计算开源平台OpenStack等使用python实现。此外,Python还在Web开发、操作系统运维、金融大数据分析和图形GUI上面都是强大的支持工具。

(MIT研究员在通过Python代码跑出黑洞图片后,没有报错时的小兴奋)

如果这些领域还是离我们的日常生活太过遥远的话,我们不妨就记住Python这样的一个小应用吧。

还记得去年媒体疯传的那张黑洞照片吗?这张据说用了2年时间拍摄而成的黑洞照片,其实并不是一个望远镜拍摄到的,而是采用了遍布全世界的望远镜连接起来,共同拍摄而成的。那么来自多个望远镜拍摄的数据的处理就需要用到Python。

简单来说,人类看到的第一张真实的黑洞照片,其实是用Python合成的。如果今后有人问起Python能做什么,你还能记得这个知识点就可以了。

本文首发于微信公众号:脑极体。文章内容属作者个人观点,不代表和讯网立场。投资者据此操作,风险请自担。

(责任编辑:季丽亚 HN003)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/311240.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python机器学习、数据分析常用第三方库(实时更新)

常用镜像源: 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里:http://mirrors.aliyun.com/pypi/simple/ 豆瓣:http://pypi.douban.com/simple/ 华中理工大学:http://pypi.hustunique.com/ 山东理工大学&#xff…

树的节点值之和

题目背景 墨家家主有棵树。 题目描述 给定一个保存树节点信息的数据结构,它包含了树节点唯一的 id ,树节点值 和 直系子节点的 id 。 比如,树节点1是树节点2的父节点,树节点2是树节点3的父节点。他们相应的树节点值为 9 , 4 , …

.NET Core开发实战(第21课:中间件:掌控请求处理过程的关键)--学习笔记(上)...

21 | 中间件:掌控请求处理过程的关键这一节讲解一下如何通过中间件来管理请求处理过程中间件工作原理next 表示后面有一个委托,每一层每一层套下去可以在任意的中间件来决定在后面的中间件之前执行什么,或者说在所有中间件执行完之后执行什么…

angularjsl路由_AngularJs ng-route路由详解

本篇基于ng-route来讲下angular中的路由,路由功能主要是 $routeProvider服务 与 ng-view 实现。ng-view的实现原理,是根据路由的切换,动态编译html模板——$compile(html)(scope)。前提首先需要在页面引入angular和angular-route,…

pandas中Series的map函数详解

Series的map函数 Series的map方法可以接受一个函数或含有映射关系的字典型对象。使用map是一种实现元素级转换以及其他数据清理工作的便捷方式。DataFrame中对应的是applymap()函数,当然DataFrame还有apply()函数 1.字典映射 例如,对数据的某个字段进…

简单的二叉树创建与遍历

编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后&…

tof摄像头手势识别_一种基于TOF手势识别的控制系统的制作方法

本发明属于汽车零配件技术领域,尤其是一种基于TOF手势识别的控制系统。背景技术:随着触摸屏技术的不断推广,用户已经适应并逐渐熟悉了与机器的互动。现在,人机互动技术已迈上了更高的台阶,进入了手势识别时代。随着手势…

疫情期间,千万级系统宕机N次,老板撂下狠话:没法把性提升10倍,全员解雇!...

性能调优整体思路作为一名团队技术核心,如何让系统跑得通、跑得稳、跑得快是必然会面对的场景。性能分析是一个大课题,不同的架构、不同的应用场景、不同的程序语言分析的方法若有差异,抽象一下大致分为两类:自底向上:…

Pandas - 查看DataFrame信息

数据表信息查看 1、维度查看: df.shape2、数据表基本信息(维度、列名称、数据格式、所占空间等): df.info()3、每一列数据的格式: df.dtypes4、某一列格式: df[B].dtype5、空值: df.isnul…

hdu2602 Bone Collector-01背包问题

Problem Description Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , also he went to the grave … The bone collector had a big bag with a volume of…

对比Java和.NET多线程编程

这篇文章以对比的方式总结Java和.NET多线程编程。基本概念多线程:很多开发语言都提供多线程编程支持,比如Java,C#。并发(concurrent):即使对于单核CPU,我们也会采用多线程等技术提高service的并…

Anaconda创建python虚拟环境

在创建虚拟环境之前首先我们需要打开命令终端:Win R 输入cmd 或者直接打开Anaconda Prompt(Anaconda) pycharm下载历史版本地址:https://www.jetbrains.com/pycharm/download/other.html Anaconda下载历史版本地址:ht…

vue2实践揭秘pdf_《Vue2.0 实践揭秘》终于出版啦!

不知不觉间在园子开博都两年多了,最近一些园友问最近去哪了为何都没有新的文章了。最近确实发生了很多的事,一是忙工作二就是忙着写书。这还得多些园子的小编,自两年前发表的“架构师修炼”系列的文章后被出版社相出让我将这个主题写成书&…

[蓝桥杯][算法提高VIP]夺宝奇兵-递推+记忆化搜索

题目描述 在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 ”夺宝奇兵”从山下出发,到达山顶,如何选路才能得到最多的珠宝呢?在上图所示例子中,按照5-> 7-> 8-&g…

这些年我对微服务的理解

Monolith、SOA、DDD、The two-pizza rule、分库分表这些概念跟微服务有啥关系,你知道吗?这篇文章记录我的理解,分享给大家。微服务(micro service),个人感觉也就近几年才吵起来的概念,记得退回去…

梯度下降与线性回归

对于代价函数: loss∑i(y^−yi)2loss\sum_i{(\hat{y}-y_i)}^2loss∑i​(y^​−yi​)2 loss∑i(w∗xib−yi)2loss\sum_i{(w*x_ib-y_i)}^2loss∑i​(w∗xi​b−yi​)2 最常见的代价函数:均方差代价函数(Mean-Square Error,MSE&…

fastreport字体自适应_FastReport 自动换行与行高自适应及自动增加空行

设定后即可自动换行及行高自适应。版本号5.6.21、masterData:属性值:stretched 为True2、Memo设定wordwrap为True ,stretchMode:smMaxHeightFastReport自动增加空行1、在masterdata下增加child;2、在code编写如下代码varPageLine: integer;//…

.NET Core开发实战(第21课:中间件:掌控请求处理过程的关键)--学习笔记(下)...

21 | 中间件:掌控请求处理过程的关键如果在 Map 的时候逻辑复杂一点,不仅仅判断它的 URL 地址,而且要做特殊的判断的话,可以这么做把判断逻辑变成一个委托我们要判断当我们的请求地址包含 abc 的时候,输出 new abcapp.…

英伟达3060Ti安装GPU版本TensorFlow2.X和Pytorch

查看Python与TensorFlow对应版本 安装GPU版本的TensorFlow的时候,我们需要考虑的一个问题是Python版本与TensorFlow版本的对应关系,可以参考下面这个链接: Python对应TensorFlow CPU版本 GPU版本 查看显卡驱动对应的CUDA版本并且下载安装 …

石子合并-区间dp

设有N堆石子排成一排,其编号为1,2,3,…,N。 每堆石子有一定的质量,可以用一个整数来描述,现在要将这N堆石子合并成为一堆。 每次只能合并相邻的两堆,合并的代价为这两堆石子的质量…