不懂Python ,照样能入AI圈!

首页 > 新酷 > 程序世界 > 本文
2018年05月16日 22:13 | 搜狐 暮云
听说,Python的市场份额有望超过Java?还听说,高中生们都开始学Python了? 近日,TIOBE编程语言社区发布了2018年5月排行榜,Python的市场份额稳居第4。五月的PYPL编程语言排......

原标题:不懂Python ,照样能入AI圈!

听说,Python的市场份额有望超过Java?还听说,高中生们都开始学Python了?

近日,TIOBE编程语言社区发布了2018年5月排行榜,Python的市场份额稳居第4。五月的PYPL编程语言排行榜还显示,Python是增长最快的语言,甚至超越了Java,增长速度跃升第一。而早在GitHub 2017年度报告中,Python就已经成为了第二受欢迎的语言。

面对着这门在大学课程中丝毫不见踪影的计算机语言,你是不是有点慌?甚至已经瑟瑟发抖地买了一堆参考书?

稳住,其实在AI圈,并不是靠Python一杆枪打天下的。

Python的地位

Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。

由于Python语言的简洁性、易读性以及可扩展性,Python在AI中被广泛应用。但是,它却有着致命的缺点——运算效率低下。

为什么呢?

第一,在Python中不需要申明变量。由于变量的类型不同,执行的操作也会不同。但是在Python中一个变量所指向对象的类型在运转时才确定,因此编译器无法做任何预测,也就无从优化。

举一个形象的例子,给命令a和命令b做加法,与给数字a和数字b相加的处理方式不同,结果也不同。因此对于Python来说,a和b到底是数字还是命令,系统需要在每一次运转中去判断,自然就拖慢了计算的效率。

第二,对于能够提升运算效率的JIT编译器,在Python中也不可用。目前适用于Python的JIT还在发展阶段,并无多少“油水”可捞,做这方面研究的公司、组织少之又少。因而,这种JIT的出现还有很长的一段路要走。

那么,这样的Python是如何被应用于对运算要求极高的AI的呢?

其实,Python主要被应用于计算图部分,而不参与运算模块。所谓计算图,即一个带有逻辑关系、运算节点的“图”型数据结构。计算图所做的,就是将不同的运算模块粘合在一起,因此Python也被称为胶水语言。

不同的语言,不同的天地

AI是一个庞大而精密的复杂机器,仅靠Python无法支撑。但Python的高粘合度却有效规避了这一不足,并给予诸多计算机语言一席之地。

在AI中,实际计算的部分主要还是由C语言和C++承担。要知道,C ++是世界上速度最快的编程语言,其在硬件层面上的交流能力使开发人员能够改进程序执行时间,对于AI项目是非常有用的。

如果说Python在AI中起到的是胶水的作用,那么C语言和C++就是那些被胶水粘合在一起的模块。在AI开发中,通常都是写好计算模块之后,运用Python进行封装。虽然封装可以根据需求改变自身的特点,但核心的部分仍然是封装之下的东西。

不仅如此,C语言与C++同样可以实现计算图的表达。甚至在较早之前,许多深度学习框架都是由C语言与C++写作而成的。而目前,许多主流深度学习框架也还保留着C语言的API。

除了它们,还有许多计算机语言也在AI领域被广泛应用。

Java

Java就是AI项目的一个很好的选择。作为解释型语言,它具有优秀的扩展性,且可以应用JIT提升运算效率。由于其发展比较成熟,可用的资源与稳定程度均要高于Python。

Lisp

Lisp因其出色的原型设计能力和对符号表达式的支持,也在AI领域崭露了头角。Lisp是因人工智能而设计的语言,也是第一个声明式系内函数式程序设计语言。它因其可用性和符号结构而主要用于机器学习/ ILP子领域。

Prolog

Prolog与Lisp在可用性方面旗鼓相当。它是一种逻辑编程语言,主要是对一些基本机制进行编程,对于AI编程十分有效,例如它提供模式匹配、自动回溯和基于树的数据结构化机制。结合这些机制可以为AI项目提供一个灵活的框架。

读芯君开扒

Python到底要不要学?

其实,对于要进入AI圈的大学生,对计算机语言的要求并没有那么高,反而数据结构、算法、计算机系统、Linux、计算机网络甚至英语等基础更重要。

话虽如此,但由于Python好上手、开发应用效率高,小芯的建议是,没事还是可以学一学的。

首先,Python具有丰富和强大的库。被称为胶水语言的它,能够把用其他语言制作的各种模块很轻松地联结在一起,尤其是C语言和C++。

而且,无论是大数据分析还是机器学习,Python都有很强大的支持能力。

最重要的是,Python已经成为了AI圈的行业惯例。要知道,对于一门计算机语言来说,谁先占领终端平台谁就是老大。不学Python,定会有诸多掣肘。

留言 点赞 发个朋友圈

我们一起探讨AI落地的最后一公里

作者:羊习习

参考文献链接:

http://m.elecfans.com/article/524016.html

https://www.zhihu.com/question/21976478/answer/47194940

如需转载,请后台留言,遵守转载规范

  • 区块链技术开发公司教你怎样利用区块链项目打假
    目前,区块链项目被认为是传销、诈骗的居多,因为我们看不到具体落地的场景与应用。许多发行虚拟货币的项目方,没有白皮书、项目团队,只靠一张嘴说,自己用了区块链技术,就可以融资千万、甚至上亿。 随着BTC、...... 程序世界 2018-05-28 | 搜狐 暮云
  • 学习python去哪好?怎样快速掌握Python?
    来千锋Python面授学习已经一个多月了,仿佛行程才刚刚开始,但五分之一的时间就已经悄悄结束。放弃之前的专业转战计算机行业,其实也是一个很大的挑战,陌生的知识体系、陌生的思维方式,但庆幸的是在老师的详...... 程序世界 2018-05-28 | 搜狐 暮云
  • 重建渠道商价值,「搭搭云」让企业“低代码”开发各类主流应用软件
    双创时代伊始,中小企业如雨后春笋般崛起。他们同样需要相应软件来管理销售、市场、生产、财务、人事等各个场景。而目前世面上所提供的选择有两种,其中一种是价格便宜的标准化软件。但因为没有为特定企业定制化开发...... 程序世界 2018-05-28 | 搜狐 暮云
  • 网站日志你分析了吗?如何分析才是对的?
    做了SEO那么久,若是还不懂得日志怎么分析的SEOer,你看到了这里,你就知道我会悄悄告诉你的,日志分析就跟中医里面的把脉是一个道理,随时还是要给自己的网站把把脉,不要忘了开一个药方,给网站做一个诊断...... 程序世界 2018-05-28 | 搜狐 暮云
  • OpenStack温哥华峰会Day4日记:学在summit,玩在summit
    编者按5月21-24日,OpenStack峰会在温哥华如火如荼的召开,本届峰会已是OpenStack第17届全球峰会,参与人员近3000人,火热程度依然不减。那么在峰会的最后一天又有哪些热点值得关注...... 程序世界 2018-05-28 | 搜狐 暮云
  • 东北大学研究生:用强化学习玩Chrome里的恐龙小游戏
    【人工智能头条导读】Chrome 浏览器里面有一个小彩蛋,当你没有网络时,打开任意的 URL 都会出现一个恐龙小游戏(Dino Run),按空格键就可以跳跃。当然,直接打开 chrome//dino...... 程序世界 2018-05-27 | 搜狐 暮云
  • 利用Ajax提升网页渲染速度
    先来看看速度优化对比(这里用了 Django的 DebugToolbar库来查看状态) AJAX = Asynchronous Java and XML(异步的 Java 和 XML)。 AJAX 不...... 程序世界 2018-05-27 | 搜狐 暮云
  • 避免 Java 应用中 NullPointerException 的技巧和最佳实践
    来源ImportNew - 熊铎 Java应用中抛出的空指针异常是解决空指针的最好方式,也是写出能顺利工作的健壮程序的关键。俗话说“预防胜于治疗”,对于这么令人讨厌的空指针异常,这句话也是成立的。值...... 程序世界 2018-05-27 | 搜狐 暮云
  • 使用CMSTP绕过AppLocker的方法介绍
    CMSTP是一个与Microsoft连接管理器配置文件安装程序关联的二进制文件。它接受INF文件,这些文件可以通过恶意命令武器化,以脚本(SCT)和DLL的形式执行任意代码。它是一个受信任的Micro...... 程序世界 2018-05-27 | 搜狐 暮云
  • 学会这些,你才是一个合格SEO
    大多数新手,在学习SEO的时候其实是盲目的,也不知道自己学习到哪一步了,还有什么没有去学习,SEO不单单只是技术方面,它是一个综合性的技艺。可能很多人学习SEO,在学习了基础的网站搭建,写软文,关键词...... 程序世界 2018-05-27 | 搜狐 暮云
  • 关于淘点点面试中碰到的架构问题
    来源Ambitor , my.oschina.net/ambitor/blog/522227 之前面试淘点点的时候被问倒得一个问题至今牵挂,由于工作环境的限制,我没能接触到一些大数据量的并发工作,也...... 程序世界 2018-05-27 | 搜狐 暮云
  • .Net异步编程知多少
    1. 引言 最近在学习Abp框架,发现Abp框架的很多Api都提供了同步异步两种写法。异步编程说起来,大家可能都会说异步编程性能好。但好在哪里,引入了什么问题,以及如何使用,想必也未必能答的上来。 自...... 程序世界 2018-05-27 | 搜狐 暮云
  • 纯新手入门机器/深度学习自学指南(附一个月速成方案)
    原作Masum Hasan 问耕 编译整理 怎么入门机器/深度学习? 回答这个问题,最先要考虑的问题是你有多少时间? 准备用三个月入门,和想要一个月速成,肯定是截然不同的路径。当然我建议大家稳扎稳...... 程序世界 2018-05-27 | 搜狐 暮云
  • .NET中可空值类型实现原理
    为了让.Net中的值类型可以赋值为null,微软特地添加了Nullable类型,也可简写为T?。但是Nullable自身是结构体,也是值类型,那么它是如何实现将null赋值给值类型的呢? 下面通过自定...... 程序世界 2018-05-27 | 搜狐 暮云
  • 吐血推荐的10条建议!让程序员薪资上升一个level
    1. 想清楚,再动手写代码 刚入行的新手,不要因为展示自己的能力,拿到需求就迫切地就开始上手写代码,大忌! 2. 不交流,就会头破血流 团队之间最重要的就是沟通,不要因为自己不爱说话和沟通,造成需求理...... 程序世界 2018-05-27 | 搜狐 暮云
  • JavaScript 最终将在编程语言中占统治地位?
    Java 现在是大多数开发者都会使用的编程语言。网络效应会推动它成为有史以来第一个真正占统治地位的编程语言吗? 作者简介Anil Dash,他是 Fog Creek Software 的首席执行官,...... 程序世界 2018-05-27 | 搜狐 暮云
  • 第十三天 面向对象-final&static&匿名对象&内部类&包&代码块
    第十三天 面向对象-final&static&匿名对象&内部类&包&代码块【悟空教程】 第13天 面向对象 第1章 面向对象其他知识点1.1 final与static关键字1.1.1 final关键字...... 程序世界 2018-05-27 | 搜狐 暮云
  • C++ 协程的近况、设计与实现中的细节和决策
    摘要 讲述C++协程的近况、设计与实现中的细节与决策 时至2018年的今天,C++ 在互联网服务端开发方向依然占据着相当大的份额;百度,腾讯,甚至以java为主流开发语言的阿里都在大规模使用C++做...... 程序世界 2018-05-27 | 搜狐 暮云