五种重要的 AI 编程语言

推荐:使用 NSDT场景编辑器 助你快速搭建3D应用场景

简而言之:决定从哪种语言开始可能会令人生畏。

不用担心!本文将解释 AI 中使用的最流行编程语言背后的基础知识,并帮助您决定首先学习哪种语言。对于每种语言,我们将描述它的基本特征,它做得好的地方,它不足的地方,以及哪种工作最常使用它。

人工智能编程语言的基本路线图

AI中最重要的五种编程语言是Python,C++,R,MATLAB和Java。在我们深入研究它们之前,让我们先探索一下要先学习哪个。

对于大多数人来说,第一个要学习的编程语言是Python。它易于学习,适应性极强,并且有许多专门用于机器学习的库。由于这些原因以及更多原因,它是AI中事实上的编码语言。接下来要学习什么取决于您的职业目标。

  • 在Python之后,你应该学习:
  • C++:如果你想在机器人、自动驾驶汽车或硬件领域工作。
  • R:如果你想在学术界或金融业工作。
  • 马特实验室:如果你最终在一家仍在使用MATLAB的公司工作(你应该说服该公司转向Python)。
  • 爪哇岛:如果要构建可扩展的 AI 基础结构。

最后一点建议:不要试图同时学习两种语言。首先专注于擅长Python。在你达到极限后,根据你的职业目标进行扩展。

请继续阅读,更深入地了解 Python 和其他 AI 编程语言。

您需要了解的五种编程语言

Python

适用于 AI 的最佳全能编程语言。

这是什么? Python是一种流行的通用编程语言,相对容易学习。它的简单性有助于AI开发,AI社区已采用Python作为其事实上的语言。

它做得好吗?Python之所以流行有几个重要原因。

  • 很简单:与其他编码语言相比,Python 具有简单的语法(您将键入用于创建程序的单词、符号和表达式)。这意味着您将有更多时间投入到重要的事情上:查看数据和调整模型。
  • 用途广泛:您的操作系统支持 Python,无论您使用的是 iOS、Windows 还是 Linux。更重要的是,你不需要修改太多的Python程序来让它跨平台运行。
  • 它是开源的:任何人都可以适应、更新或添加到 Python 底层的代码中。因此,Python 社区的许多成员都构建了框架和库,使其几乎可以适应任何机器学习或数据科学任务。

缺点是什么?Python在执行复杂的数学和统计函数时有局限性。与C++和Java等语言相比,它的运行速度也很慢(见下文)。

是为谁准备的? 我们再说一遍:Python是机器学习和数据科学中最流行的编程语言。如果你的工作涉及构建机器学习模型和处理大量数据,Python 适合你。但是,如果您从事数据分析、AI 基础设施工作,或者计划在核心 AI 工作之外进行更密集的编程,则可能需要专攻第二语言。继续阅读以了解更多信息。

C++

适用于 AI 基础设施的最佳编程语言。

这是什么? C++ 是通用应用程序中最流行的语言之一。它是Windows,iOS和Linux等操作系统的支柱;像Spotify和Photoshop这样的应用程序;像YouTube这样的网站;以及视频游戏、银行系统等。对于任何从事自动驾驶汽车或机器人工作的人来说,它也是一门必不可少的语言。

它做得好吗?C++是一种编译语言:它不需要解释器程序,这会增加处理开销。实际上,用C++编写的程序既快速高效

缺点是什么? C++程序的运行可能很有效,但编写它们很复杂——有一个大写的 C 和两个加号。用C++编写程序需要时间,调试它通常需要更多时间,每次调整超参数时重写它花费的时间比您想象的要多。众所周知,C++很难学。如果你的目标是成为一名数据科学家,那么学习C++就像学习驾驶直升机,然后只用它来在杂货店购物。

是为谁准备的?C++不太适合大多数数据科学家或机器学习工程师,但它对于人工智能中的某些学科至关重要。

  • 如果你的角色涉及构建或维护人工智能基础设施——其他人用来部署模型或分析数据的核心软件库——那么你绝对应该学习C++。
  • 大多数从事机器人和自动驾驶汽车的团队都使用C++作为他们的生产代码,因为它的速度和效率。
  • 芯片和硬件行业的大多数工作都需要C++。
  • 如果你想参与开源社区,学习C++是很重要的。许多最流行的Python框架和工具包都是用C++编程的。

R

用于数据分析的最佳编程语言。

这是什么? R 是专门为统计分析而构建的。

它做得好吗? R是由统计学家为统计学家开发的。它擅长在数据中查找模式并从模型输出中获取见解。出于显而易见的原因,R 还吸引了将其用于统计分析、数据可视化和类似项目的机器学习工程师和数据科学家。与Python一样,它是开源的,社区已经为AI任务创建了许多框架和库。

缺点是什么?在复杂性方面,初学者会发现R比Python更难学习。与 Python 相比,R 具有更多用于处理数字的内置功能,但在处理一次使用太多数据的项目时,它也往往会滞后。R?更像啊!

是为谁准备的? R 是数据分析、数据科学和邻近职业的绝佳工具,但它经常被学者使用。如果您找到一份从事财务工作的工作,并且对于在其旧软件中使用它的团队,您可能还需要学习 R。

MATLAB

一种曾经流行的AI编程语言,已被Python黯然失色。

这是什么? MATLAB 不仅仅是一种编程语言,它是一个由五部分组成的系统,由语言、开发环境、图形可视化工具、数学库和用于用其他语言编写程序的界面组成。MATLAB专注于矩阵计算。如果您不熟悉矩阵,矩阵是数字数组,并且能够很好地计算它们对于许多机器学习和数据科学应用程序至关重要。

它做得好吗?MATLAB 非常适合处理数值数组。它也非常适合许多其他数学运算,并且具有用于实现机器学习模型的内置功能。这些功能使其比Python更具优势,Python需要用于数学函数和模型实现的附加工具包和框架。在速度方面,它在许多操作中都快速且轻松地超过了Python。

缺点是什么?MATLAB 的最大缺点是成本:您必须支付费用才能访问系统,并且可能需要支付额外的功能,具体取决于您的目标。这种进入壁垒在一定程度上导致了 MATLAB 在 AI 构建者中的受欢迎程度下降;毕竟,Python是免费和开源的。最后,与Python相比,MATLAB的语法很难学习。

是为谁准备的?一些雇主和人工智能团队更喜欢 MATLAB,因为他们是传统用户,或者他们的目标需要更多的数学魅力。有趣的事实:Andrew Ng最初的机器学习课程是使用MATLAB教授的。当 Andrew 和他在 DeepLearning.AI 和斯坦福大学的团队在 2022 年对机器学习专业化进行现代化改造时,其中一个关键的升级是切换到 Python。

Java

一种快速、通用的编程语言,可用于构建可扩展的 AI 基础架构。

这是什么? Java在很多方面与Python相似:它是流行的,开源的,并且有许多专门用于机器学习和数据科学的框架和工具包。Java要老得多,因此它得到了许多组织的遗留支持。它在技术上也比Python更复杂。这意味着它比Python和R更难学习,但它可以更有效地执行程序。

它做得好吗?Python可以做的所有事情,Java也可以做得很好——在某些情况下,也许更好。例如,它具有用于数据科学、分类、深度学习等的框架。Java比Python有更多的规则,这使得破解或滥用代码变得更加困难。它可用于构建用于部署机器学习模型的完整堆栈、后端、大规模基础结构。

缺点是什么?Java的学习曲线比Python更陡峭(尽管没有C++那么陡峭)。用Java编写程序也比Python花费更多的时间,并且由于它们的复杂性,这些程序通常需要更多的调试。这些减速带会减慢机器学习模型的快速原型制作速度。最后,在开发以AI为中心的工具方面,Java的社区并不像Python那样活跃,因此Java对于范围更窄的机器学习和数据科学任务很有用。

是为谁准备的?如果不是因为它的复杂性,Java可能是主要的AI编码语言。但是,您可能只需要在构建 AI 基础架构或部署机器学习产品的角色时才需要学习它。对于初学者来说,Python是一个更安全的选择。与此同时,您仍然可以每天早上在杯子里享受java。

吴恩达关于学习编程的提示

学习编码的最好方法之一是承担编码项目。吴恩达建议,从小处着手,一个项目你可以在业余时间完成一两个星期。目标不是构建一个改变世界的应用程序,而是将您的知识付诸实践并从错误中吸取教训。

在处理项目时,编码人员通常会使用Google或Stack Overflow来查找适合其需求的预先编写的代码行。这是一种高效的工作方式,您也可以随意这样做。但是,不要只是复制和粘贴你找到的东西,Andrew Ng说。相反,请自己重新键入。这样做的身体行为将为你的大脑建立肌肉记忆,帮助你内化概念和语法。继续这样做,您将成为发布其他人复制的代码的人!

在 2020 年给他的时事通讯《The Batch》读者的一封信中,吴恩达写道:

“当你试图掌握一种编程技术时,请考虑以下做法:

  • 阅读一行代码,然后自己输入。(在打字时不查看参考代码即可执行此操作的奖励积分。
  • 了解算法,然后尝试自己实现它。
  • 阅读研究论文并尝试复制已发表的结果。
  • 学习一段数学或定理,并尝试从一张白纸开始自己推导它。

结论

编码是人工智能建设者的一项基本技能。事实上,吴恩达(Andrew Ng)将编码比作读写能力:“代码是人机交流最深层次的形式。随着机器在日常生活中变得越来越重要,这种沟通变得越来越重要。

那么,你应该学习哪种语言呢?对于大多数机器学习工程师和数据科学家来说,最好的选择是Python。它易于学习,快速实施,并且有大量为AI量身定制的附加组件。你可能会想学习一点Python,然后学习一点R,一点Java,等等,以便更加通用。我们建议不要这样做。在你改变之前,专注于获得一个好的Python。

原文链接:五种重要的 AI 编程语言 (mvrlink.com)

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

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

相关文章

Qt Scroll Area控件设置,解决无法显示全部内容,且无法滚动显示问题。

前言,因为要显示很多条目的内容,原来是用Vertical Layout控件里面嵌套Horizontal layout显示了很多行控件,发现最简单的方法就是使用滚动条控件,但是无论如何调整需要滚动的控件高度,始终无法滚动显示内容。也就是说添…

Leetcode刷题笔记--Hot21-30

目录 1--全排列(46) 2--旋转图像(48) 3--字母异位词分组(49) 4--最大子数组和(53) 5--跳跃游戏(55) 6--合并区间(56) 7--不同路…

初阶数据结构(五) 栈的介绍与实现

💓博主csdn个人主页:小小unicorn💓 ⏩专栏分类:C 🚚代码仓库:小小unicorn的学习足迹🚚 🌹🌹🌹关注我带你学习编程知识 栈 栈的介绍栈的概念栈的结构 栈的实现…

数学系硕士研究生的科研过程——PDE约束下含参优化控制问题的深度学习算法

笔者今天上午收到了之前北大课题组老板的通知,得知研究生期间和学长合作的论文终于被siam接收,终于为自己研究生涯画上了一个句号。这里打算分享一下个人的科研过程以及这篇论文的工作,即将读研或者打算读研的同学或许可以从中获得益处。论文…

01.sqlite3学习——数据库概述

目录 重点概述总结 数据库标准介绍 什么是数据库? 数据库是如何存储数据的? 数据库是如何管理数据的? 数据库系统结构 常见关系型数据库管理系统 关系型数据库相关知识点 数据库与文件存储数据对比 重点概述总结 数据库可以理解为操…

CrystalNet .Net VCL for Delphi Crack

CrystalNet .Net VCL for Delphi Crack VCL或更为人所知的可视化组件库是基于一个面向对象的框架,什么是用户对开发人员和事件的Microsoft Windows应用程序的接口。可视化组件库是用对象Pascal编写的。它主要是为使用Borland而开发的,它具有与Delphi以及…

手把手教你安装Git,萌新迈向专业的必备一步

手把手教你安装Git,萌新迈向专业的必备一步 一、版本控制系统是什么?1. 倒霉的小明2. 版本控制系统3. 常见的版本控制系统 二、GitLab 与 GitHub1. GitLab2. GitHub 三、Git安装1. 下载2. 安装3. 验证 四、初学使用1. 本地仓库2. 远程仓库-Github3. 远程…

特斯拉启动墨西哥建厂计划,引发台厂竞逐 | 百能云芯

特斯拉(Tesla)在墨西哥新工厂计划备受瞩目,据外媒报道,墨西哥的超级工厂似乎正在迈出实质性的步伐。包括鸿海集团、广达(Foxconn)、和大在墨西哥和美墨边境都计划扩大电动车零配件生产基地。 市场对特斯拉在…

计算机技术与软件专业技术资格(水平)考试----系统架构设计师

【原文链接】计算机技术与软件专业技术资格(水平)考试----系统架构设计师 考试简介 计算机软件资格考试是由国家人力资源和社会保障部、工业和信息化部领导下的国家级考试。计算机软件资格考试既是职业资格考试,又是职称资格考试。考试合格…

教师如何有效地发放开学通知并收集签名回执?

老师在即将开学时,希望能够向家长发送开学通知,并确认家长已经收到通知。接下来教给各位老师如何完成这个需求的步骤: 好消息!博主给大家争取到的易查分福利,只需要在注册时输入邀请码:xmt66,就…

<template></template>、<slot></slot>、slot-scope、v-slot傻傻分不清!他们究竟是干啥的???

一句话描述4个关键词的作用: template是备胎(模板):通常在html里面作为备用模板,包裹的内容显示,而自身标签不会出现在html中 slot是替身(替代组件包裹内容、插槽):通常出现在子组件中,用于替代父组件中>…

1268. 搜索推荐系统

链接&#xff1a; 1268. 搜索推荐系统 题解&#xff1a; class Solution { public: struct Trie {Trie() {end false;next.resize(26, nullptr);}bool end;std::set<std::string> words;std::vector<Trie*> next; };void insert_trie(const std::string& w…

计算机竞赛 基于大数据的时间序列股价预测分析与可视化 - lstm

文章目录 1 前言2 时间序列的由来2.1 四种模型的名称&#xff1a; 3 数据预览4 理论公式4.1 协方差4.2 相关系数4.3 scikit-learn计算相关性 5 金融数据的时序分析5.1 数据概况5.2 序列变化情况计算 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &…

C/C++ 个人笔记

仅供个人复习&#xff0c; C语言IO占位符表 %d十进制整数(int)%ldlong%lldlong long%uunsigned int%o八进制整型%x十六进制整数/字符串地址%c单个字符%s字符串%ffloat&#xff0c;默认保留6位%lfdouble%e科学计数法%g根据大小自动选取f或e格式&#xff0c;去掉无效0 转义符表…

java八股文面试[多线程]——线程的生命周期

笔试题&#xff1a;画出线程的生命周期&#xff0c;各个状态的转换。 5.等待队列(本是Object里的方法&#xff0c;但影响了线程) 调用obj的wait(), notify()方法前&#xff0c;必须获得obj锁&#xff0c;也就是必须写在synchronized(obj) 代码段内。与等待队列相关的步骤和图 …

攻防世界-Web_php_unserialize

原题 解题思路 注释说了flag存在f14g.php中&#xff0c;但是在wakeup函数中&#xff0c;会把传入的文件名变成index.php。看wp知道&#xff0c;如果被反序列话的字符串其中对应的对象的属性个数发生变化时&#xff0c;会导致反序列化失败而同时使得__wakeup 失效&#xff08;CV…

MySQL每日一练--销售管理系统

一&#xff0c;创建数据库SaleSys 二&#xff0c;在数据库SaleSys中创建3张表 品牌信息表&#xff08;brand&#xff09; BrandId --品牌编号&#xff0c;整型&#xff0c;自动增长&#xff0c;主键BrandName --品牌名称&#xff0c;字符型&#xff0c; 唯一约束 商品表…

7 集群基本测试

1. 上传小文件到集群 在hadoop路径下执行命令创建一个文件夹用于存放即将上传的文件&#xff1a; [atguiguhadoop102 ~]$ hadoop fs -mkdir /input上传&#xff1a; [atguiguhadoop102 hadoop-3.1.3]$ hadoop fs -put wcinput/work.txt /input2.上传大文件 [atguiguhadoop1…

【百草阁送书-第二期】一名阿里服务端开发工程师的进阶之路

文章目录 一、前言二、AI 时代&#xff0c;服务端开发面临新挑战三、服务端开发会被 AI 取代吗&#xff1f;四、知识体系化&#xff0c;构建核心竞争力五、业界首本体系化、全景式解读服务端开发的著作六、参与抽奖方式 一、前言 目前&#xff0c;资讯、社交、游戏、消费、出行…

C#__使用Thread启动线程和传输数据

class Program{static void Test(){Console.WriteLine("Start……");Thread.Sleep(2000); // 1s等于1000ms&#xff0c;暂停2sConsole.WriteLine("end");}static void Download(Object ob){string str ob as string; // 遍历传递过来的ob字符串Console.Wr…