- 0
- 0
- 约3.03千字
- 约 8页
- 2018-11-11 发布于江苏
- 举报
Python如何奠定AI领域的老大地位
Python如何奠定AI领域的老大地位
在所有编程语言里,Python并不算萌新,从1991年发布第一个版本,至今已经快30年了。
最近几年,随着人工智能概念的火爆,Python迅速升温,成为众多AI从业者的首选语言。
根据数据平台 Kaggle发布的2017年机器学习及数据科学调查报告,在工具语言使用方面,Python是数据科学家和人工智能从业者使用最多的语言(见下图)。
IEEE综览(IEEE Spectrum)发布的2017最受欢迎编程语言列表中,Python同样位列第一(见下图)。
为什么?
原因1:Python是一种说人话的语言
所谓“说人话”,是指这种语言:
开发者不需要关注底层
语法简单直观
表达形式一致
我们先来看几个代码的例子:
C 语言Hello World 代码:
intmain(){printf(“Hello, World!”);return0;}
Java 语言Hello World 代码:
publicclassHelloWorld{ publicstaticvoidmain(String[] args){ System.out.println(“Hello World!”); }}
Python 语言Hello World代码:
print(“Hello World!”)
仅仅是一个Hello World程序,就能看出区别了,是不是?
编译 VS 解释
当然,仅仅是一个Hello World的话,C和Java的代码也多不了几行。
可是不要忘了,C和Java的代码要运行,都必须先经过编译的环节。
对于C语言来说,在不同的操作系统上使用什么样的编译器,也是一个需要斟酌的问题。一旦代码被copy到新的机器,运行环境和之前不同,还需要重新编译,而那台机器上有没有编译器还是一个问题,安装上编译器后,也许和之前最初的编译器有所区别,还得修改源代码来满足编译环境的需求……
我到底做错了什么?我只是想运行一个别人写的程序而已[泪目]
而Python则不用编译,直接运行。而且都可以不用写文件,一条条语句可以直接作为命令行运行。不要太方便咯。
语言语法
和Python比,Java的语法更“啰嗦”。
从上面的例子已经可以看出,创建一个链表,Java还需要声明和逐个插入节点,而Python则可一行代码完成从链表创建到插入节点及赋值的全部操作。
这还只是一个例子。在真正的使用中就会发现,对于很多非常简单基础的操作,Java非让你很别扭地写好几行,Python直接一句搞定。
这样的结果就是,Python写起来省事,读起来也方便。可读性远超Java。
表达风格
在10年或者更久远之前,Python经常被用来和Perl相提并论。毕竟在那个时候,C是系统级语言,Java是面向对象语言,而Python Perl则是脚本语言的双子星。
Python和Perl在设计层面有一个非常大的区别:
Python力求让不同的人在撰写同样功能实现的代码时,所用的表达形式尽量一致;
而Perl则是故意追求表达的千姿百态,让同一个人在不同地方写同样功能时所用具体形式都不同。
从哲学层面讲,Perl的追求更加自由主义,更利于释放人类的多样化天性。也确实有很多Geek范儿程序员因为这一点推崇毫无限制的Perl,鄙视到处设限的Python。
然而,Perl写的程序——那叫一个乱七八糟!
当你想遇到问题,想在网上找点实例代码看看的时候,搜到的Perl example千姿百态,很难找到一种“大众”的解法。而不同写法之间,还很难保证相容。
这个问题其实在Python vs Java上也有,只不过程度要低得多。
Java语言本身并没有想要把自己变成书写代码诗歌的载体。但是因为它长年大量地被应用在企业级软件的后台开发,夹杂进了太多并非语言本身却又与其使用不可分割的东西,进一步加剧了Java的繁杂。
如果不是想成为代码诗人,或者语言大师,只是想用尽量简单直接的方法,把事情做了,首选语言确实是Python。
原因2:强大的AI支持库
矩阵运算
NumPy由数据科学家Travis Oliphant创作,支持维度数组与矩阵运算。结合Python内置的math和random库,堪称AI数据神器!有了它们,就可以放心大胆玩矩阵了!
大家知道,不管是Machine Learning,还是Deep Learning,模型、算法、网络结构都可以用现成的,但数据是要自己负责I/O并传递给算法的。
而各种算法,实际上处理的都是矩阵和向量。
使用NumPy,矩阵的转置、求逆、求和、叉乘、点乘…
您可能关注的文档
- NI双维度布局5G毫米波测试 助力客户抢位5G时代.doc
- NI半导体测试方案亮相SEMICON CHINA 2018吸引众人关注.doc
- NI模块化平台方案,助力国产飞机翱翔蓝天.doc
- NI:中国已成为5G全球“战场”的重要一环.doc
- NI给工程师带来五大新品 给用户带来更多保障.doc
- Nokia 8 Sirocco评测体验:一部真旗舰无线充电+骁龙835.doc
- Nokia X6千元机中的战斗机.doc
- Node.js语言将会告诉你如何打造专属于自己的区块链项目.doc
- NOR Flash行业趋势分析 浅谈NOR Flash原理及性能.doc
- NOLO VR打破VR行业壁垒 让所有 VR 头盔“动起来”.doc
- 河北盐山中学等校2025-2026学年上学期高三一模化学试卷(含解析).docx
- 河北正定中学2025-2026学年高一上学期期末考试物理试卷(含解析).docx
- 河北张家口市怀安县2025-2026学年第一学期期末教学综合评价八年级地理试卷(含解析).docx
- 河南安阳市殷都区2025-2026学年第一学期期末教学质量检测七年级地理试卷(含解析).docx
- 河南安阳市滑县2025一2026学年第一学期期末学业质量监测八年级地理试题(含解析).docx
- 河南安阳市林州市2025-2026学年上学期期末考试高一政治试题(含解析).docx
- 河南焦作市武陟县第一中学2025-2026学年高一上学期1月月考语文试卷(含解析).docx
- 河南济源市2025-2026学年上学期期末学业质量调研七年级历史试卷(含解析).docx
- PICC导管并发症的紧急处理与护理.pptx
- 河南鹤壁市2025-2026学年高二上学期期末考试生物试题(含解析).docx
原创力文档

文档评论(0)