-
人工智能技术的提升不仅为企业的运营带来了效率,而且为人民的生活带来了便利。迄今为止,人工智能已经实现了生物识别智能、自动驾驶汽车和人脸识别等等项目。 就像大多数软件应用程序的开发一样,开发人员也在使用多种语言来编写人工智能项目,但是现在还没有任何一种完美的编程语言是可以完全速配人工智能项目的。编程语言的选择往往取决于对人工智能应用程序的期望功能。关于最佳人工智能编程语言的争论从未停止,所以本文就来比较5种人工智能项目最常用的编程语言,并列出它们的优缺点。 Python 由于其语法,简单性和多功能性,Python成为开发人员最喜欢的人工智能开发编程语言。Python最打动人心的地方之一就是便携性,它可以在Linux、Windows、Mac OS和UNIX等平台上使用。允许用户创建交互式的、解释的、模块化的、动态的、可移植的和高级的代码。 另外,Python是一种多范式编程语言,支持面向对象,过程式和功能式编程风格。由于其简单的函数库和理想的结构,Python支持神经网络和NLP解决方案的开发。 优点 Python有丰富多样的库和工具。 支持算法测试,而无需实现它们。 Python的面向对象设计提高了程序员的生产力。 与Java和C ++相比,Python的开发速度更快。 缺点 习惯使用Python来编写人工智能程序的程序员很难适应其它语言的语法。 与c++和Java不同的是,Python需要在解释器的帮助下工作,这就会拖慢在AI开发中的编译和执行速度。 不适合移动计算。 C ++ 优点 c++是最快的计算机语言,如果你的人工智能项目对于时间特别敏感,那么C++是很好的选择,它提供更快的执行时间和更快的响应时间(这也是为什么它经常应用于搜索引擎和游戏)。此外,c++允许广泛使用算法,并且在使用统计人工智能技术方面是有效的。另一个重要的因素是c++支持在开发中重用代码。 C ++适用于机器学习和神经网络。 缺点 多任务处理不佳; C ++仅适用于实现特定系统或算法的核心或基础。 它遵循自下而上的方法,因此非常复杂。 Java Java也是一种多范式语言,遵循面向对象的原则和一次写入读取/随处运行(WORA)的原则。它是一种AI编程语言,可以在任何支持它的平台上运行,而无需重新编译。 在各种项目的开发中,Java都是常用语言之一,它不仅适用于NLP和搜索算法,还适用于神经网络。 Lisp 优点 Lisp是一门计算机编程语言,是继Fortran之后的第二古老的编程语言。随着时间的推移,LISP逐渐发展成为一种强大的、动态的编码语言。 有人认为Lisp是最好的人工智能编程语言,因为它为开发人员提供了自由。在人工智能中使用Lisp,因其灵活性可以快速进行原型设计和实验,当然这也反过来促进Lisp在AI开发中的发展,例如,Lisp有一个独特的宏系统,有助于开发和实现不同级别的智能。 与大多数人工智能编程语言不同,Lisp在解决特定问题时更加高效,因为它适应了开发人员编写解决方案的需求,非常适合于归纳逻辑项目和机器学习。 缺点 很少有开发人员熟悉Lisp编程。 作为一种较古老的编程语言,Lisp需要配置新的软件和硬件来适应它的使用。 Prolog Prolog也是古老的编程语言之一,与Lisp一样,它也是人工智能项目开发的常用语言,拥有灵活框架的机制,它是一种基于规则和声明性的语言,包含了决定其人工智能编码语言的事实和规则。 Prolog支持基本的机制,例如模式匹配、基于树的数据结构和人工智能编程的自动回溯。除了在人工智能项目中广泛使用外,Prolog还用于创建医疗系统。 本文转自:IT168网站
-
本帖最后由 达康书记 于 2018-3-8 11:01 编辑问题描述: pip安装包为何依赖openssl和openssl-devel问题? 如下帖子所描述的。 http://forum.huaweicloud.com/thread-6916-1-1.html 11791 答案的解释: 之所以安装ssl是因为pip官方网站是用https来访问的,每次使用pip安装python第三方模块的时候,pip首先要在官网下载相应模块的源码包,然后再对其进行安装,所以需要openssl相关包。 #yum install openssl openssl-devel
-
本帖最后由 达康书记 于 2018-3-7 17:08 编辑问题描述: 配置了pip源后,在用pip安装Python库软件的时候遇到"command ´gcc´ failed with exit status 1"错误问题,看似缺少gcc组件,但是确实在安装之前有执行过yum安装gcc,但是还是有这样的问题,于是找呀找发现缺少openssl-devel支持。 11658 11657 解决方法: # yum install gcc libffi-devel python-devel openssl-devel -y 执行完毕之后,再回到之前执行的pip安装python库命令,执行后就没有看到错误提示。11656 看来问题解决了。
-
本帖最后由 码小玩 于 2018-2-23 09:59 编辑以下是一些 Python 编写的用来解析和操作特殊文本格式的库,希望对大家有所帮助。 1、Tablib Tablib 是一个用来处理与表格格式数据有关的 Python 库,允许导入、导出、管理表格格式数据,并具备包括切片、动态列、标签和过滤,以及格式化导入和导出等高级功能。 Tablib 支持导出/导入的格式包括:Excel 、JSON 、YAML 、HTML 、TSV 和 CSV ,暂不支持 XML 。 111452、Openpyxl Openpyxl 是一个用于读写 Excel 2010 xlsx / xlsm / xltx / xltm 文件的 Python 库。 Openpyxl 为 Python 原生读取/写入 Office Open XML 格式而生,最初是基于 PHPExcel 而开发。 111463、unoconv unoconv,全称为 Universal Office Converter ,是一个命令行工具,可在 LibreOffice/OpenOffice 支持的任意文件格式之间进行转换。 unoconv 支持批量转换文档,还可以结合 asciidoc和 docbook2odf / xhtml2odt 来创建 PDF 或 Word(.doc) 文件。 111474、PyPDF2 PyPDF2 是一个纯 Python PDF 库,能够分割、合并、裁剪和转换 PDF 文件页面。它还可以添加自定义数据、查看选项和密码到 PDF 文件。 PyPDF2 可以从 PDF 中检索文本和元数据,也可以将整个文件合并在一起。 11148111495、Mistune Mistune 是一个纯 Python 实现的 Markdown 解析器,功能齐全,包括表格、注释、代码块等。 Mistune 据称是所有纯 Python markdown 解析器中速度最快的(基准测试结果)。它在设计时考虑了模块化,以提供一个清晰易用的可扩展的 API 。 111506、csvkit csvkit 号称是处理 csv 文件的瑞士**,集成了 csvlook , csvcut 和 csvsql 等实用工具,可以以表格形式显示 CSV 文件,轻松选取 CSV 指定列,以及在其上执行 SQL 操作。 csvkit 是一个命令行工具,灵感来自 pdftk 、gdal 和其它类似工具。
-
主要是对于笔者这几年编程实践中,学习各个语言的过程中总结出来的共通的知识要点与体系结构的反馈。具体的 Java、JavaScript、Python、Go 的学习笔记可以参考 Domain-of-ProgrammingLanguage 与 Web 开发基础与工程实践;本文归纳的层次结构可以帮助初学者厘清语言中的知识组织,并且也可以作为个人笔记的目录结构。 因图片太大,需要查看原图的用户可回帖后点击附件下载。 [hide]11125[/hide]
-
尽管一些人认为区块链是一个等待问题的解决方案,但毫无疑问,这种新技术是计算机的奇迹。但是,区块链到底是什么呢? 区块链 它是比特币或其他加密货币进行交易的数字账本,账本按时间顺序记录并对外公开。 在更一般的术语中,它是一个公共数据库,新数据存储在一个名为块的容器中,并被添加到一个不可变链(后来的区块链)中添加了过去的数据。在比特币和其他加密货币的情况下,这些数据是一组交易记录。当然,数据可以是任何类型的。 区块链技术已经催生了新的、完全数字化的货币,如比特币和莱特币,这些货币并不是由中央政府发行或管理的。因此为那些认为今天的银行系统是骗局或终将失败的人带来了新的自由。区块链所包含的以太坊技术对分布式计算进行了变革创新,它引入了一些有趣的概念,比如智能合约。 在本文中,我将用不到50行的Python2代码来做一个简单的区块链。我称它为SnakeCoin。 首先将定义块将是什么样子。在区块链中,每个块都存储一个时间戳和一个索引。在SnakeCoin中,需要把两者都存储起来。为了确保整个区块链的完整性,每个块都有一个自动识别散列。与比特币一样,每个块的散列将是块索引、时间戳、数据和前块哈希的加密哈希。数据可以是你想要的任何东西。 10029 这一步后有块结构,但现在是创建区块链,所以需要向实际的链中添加块。如前所述,每个块都需要上一个块的信息。但是按照这个说法就有一个问题,区块链的第一个区块是如何到达那里的呢?不得不说,第一个块,或者说是起源块,它是一个特殊的块。在很多情况下,它是手动添加的,或者有独特的逻辑允许添加。 下面将创建一个函数简单地返回一个起源块以便产生第一个区块。这个块是索引0,它具有任意的数据值和“前一个哈希”参数中的任意值。 10035 现在已经创建好了起源块,接下来需要一个函数,以便在区块链中生成后续的块。这个函数将把链中的前一个块作为参数,创建要生成的块的数据,并使用适当的数据返回新块。当新的块哈希信息来自前面的块时,区块链的完整性会随着每个新块而增加。如果不这样做,外部组织就更容易“改变过去”,用全新的方式取代已有的链条。这一系列的散列可以作为加密的证据,有助于确保一旦将块添加到区块链,它就不能被替换或删除。 10034 大部分的工作已经完成,现在可以创建区块链了。在这次的示例中,区块链本身是一个简单的Python列表。列表的第一个元素是起源块。当然,还需要添加后续的块,因为SnakeCoin是最小的区块链,这里只添加20个新的块。可以用for循环来生成新块。 10036 下面来测试一下目前产生的区块链。 10038 看到了吧,这就是区块链。如果希望在控制台中查看更多信息,可以编辑完整的源文件并打印每个块的时间戳或数据。 这就是SnakeCoin要提供的所有东西。为了使SnakeCoin规模达到今天生产区块链的规模,必须添加更多的功能,比如服务器层,以跟踪多台机器上的链变化,以及在给定的时间段内限制添加的块数量的工作算法。
-
编程语言有上千种,但是流行的不过10来种,那些我们经常使用的编程语言都是谁在什么时候创造出来的呢?Casper Beyer 为我们进行了整理。 98151800年 Joseph Marie Jacquard 教会了一台织布机读穿孔卡片,制造出了第一个高度多线程的处理单元。他的发明受到了预见天网(Skynet)诞生的纺织工人的强烈反对。 1842年 Ada Lovelace(英国诗人拜伦之女)为计算程序拟定“算法”,写作的第一份“程序设计流程图”,被珍视为“第一位给计算机写程序的人”。稍微有点不便的是当时还没有计算机呢。 1936年 阿兰·图灵被称为计算机科学之父,人工智能之父。但英国法庭却并不认可,还判处对他进行化学阉割。 女皇后来宽恕了他,但不幸的是当时他已经过世很久了。 1936年 Alonzo Church(算法理论重要奠基人)发明了lambda算子,跟图灵生活在同样的时代,但是他在时代的另一边,也并没有被女王阉割。 1957年 John Backus创建了FORTRAN语言,这真正是程序员使用的第一种语言。 1959年 Grace Hopper发明了第一门针对企业面向商业的编程语言,并且把这门语言叫做“面向商业的通用语言(common business-oriented language)”,简称COBOL。 1964年 John Kemeny 和 Thomas Kurtz 认为编程太难了,需要回归本源,他们把自己的编程语言叫做BASIC。 1970年 Niklaus Wirth开发了多种语言,最后流行起来的是PASCAL。他喜欢开发语言。 他还发明了让摩尔定律变得过时的Wirth定律(软件变慢的速度比硬件变快的速度更快),因为软件开发者会编写出连大型主机也没法跟上的臃肿软件。 这在后来被证明是正确的——在Electron.js被发明出来后 1972年 Dennis Ritchie在贝尔实验室上班上到无聊了,于是他决定写出带有花括号的C语言,这门语言取得了巨大成功。随后他又增加了分段错误等对开发者友好的功能来辅助提高生产率。 折腾完这门语言之后他还有时间,于是他跟在贝尔实验室的伙计决定给C语言做个演示程序,结果他们弄出了一个操作系统,UNIX。 1980年 Alan Kay发明了一门面向对象语言,他把这门语言叫做Small**,在Small**中一切都是对象,甚至一个对象也是对象。没人真正搞得清楚small **是什么意思。 1983年 Jean Ichbiah注意到Ada Lovelace的程序从来都没有实际运行过,决定以她的名字开发一门语言,但是这门语言还是没有跑起来。 1983年 Bjarne Stroustrup 注意到C在编译方面花的时间还不够多,于是他把自己能想到的每一项功能都增加了进去,然后称之为C++。 每一个地方的程序员都接受了它,因为这样他们在工作的时候找借口看阿猫阿狗视频和xkcd漫画就显得比较有诚意了。 1986年 Brac Box 和 Tol Move决定在Small**的基础上制作一个C语言的不可读版本,他们把这门语言叫做Objective-C,但是没人弄得清楚它的语法。 1987年 Larry Wall有宗教经验,他成为了一名牧师,并且把Perl变成了一种教义。 1991年 Guido van Rossum不喜欢花括号,于是他发明了Python,语法选择的灵感来源自Monty Python(巨蟒剧团)和Flying Circus(飞行马戏团)。 1993年 Roberto Ierusalimschy和他的朋友认为自己需要一个巴西本地化的脚本语言,在本地化期间发生了一个错误,这个错误会把指针从1而不是0开始计算,他们把这门语言叫做Lua。 1994年 Rasmus Lerdorf给他个人主页的CGI脚本做了一个模板引擎,后来他把自己的资料都放到了网上。 世界决定将这些东西用到一切,Rasmus于是匆忙地将一些数据库绑定做了进去,并把这门语言叫做PHP。 1995年 Yukihiro Matsumoto不是很高兴,因为他注意到其他程序员不是很高兴。他创建了Ruby来让程序员高兴。在他创建了Ruby后“Matz”高兴了,Ruby社区高兴了,每个人都高兴了。 1995年 Brendan Eich利用周末时间设计了一门语言,打算用这门语言来为全世界的每一个主流浏览器乃至于最终的Skynet都提供动力。 他先是找到了Netscape然后说这门语言叫做LiveScript,但在代码评审期间Java变得流行起来,所以他们决定最好还是用花括号,然后就把它更名为JavaScript。 结果表明,Java却是一个会让他们惹上麻烦的商标,JavaScript随后更名为ECMAScript,但大家还是把它叫做JavaScript。 1996年 James Gosling发明了Java,第一们真正过于繁琐的面向对象语言,在这里设计模式完全压倒了实用主义。 于是就诞生了超级有效的管理器提供商、容器提供商、服务提供商、单一管理器提供商模式。 2001年 Anders Hejlsberg重新发明了Java然后把它叫做C#,因为用C来编程感觉要比Java酷。每个人都喜欢这个新版本的Java,因为它完全不像Java。 2005年 David Hanselmeyer Hansen创建了一个web框架叫做Ruby on Rails,从此大家不再记得Ruby和Rails是两个独立的东西了。 2006年 John Resig为JavaScript写了一个帮助库,每个人都以为那是一门语言,从此从互联网上拷贝粘贴jQuery代码就成为了一门职业。 2009年 Ken Thompson 和 Rob Pike 决定做一门类似C那样的语言,但要有更安全的装置,还要有更好的卖相,并且把Gopher(囊鼠)作为吉祥物。 他们把这门语言成为Go,并把它做成开源然后另外卖Gopher商标的护膝和头盔作为收入来源。 2010年 Graydon Hoare也想把语言做成C那样,他称之为Rust。每个人都要求马上用Rust把软件的每一块都重写一遍。Graydon希望做点更有亮点的事情,于是开始为苹果开发Swift。 2012年 Anders Hjelsberg希望在web浏览器里面写C#,于是他设计出TypeScript,这东西其实是JavaScript,但里面有了更多的Java的东西。 2013年 Jeremy Ashkenas想要像Ruby开发者一样快乐,于是他创建了CoffeeScript,这东西编译后像JavaScript但是样子又更像Ruby。Jerry从来都没有变得像Matz和Ruby开发者那样真正快乐。 2014年 Chris Lattner做Swift的时候,其主要的设计目标就是不要成为Objective-C,最后它看起来像Java。
-
本帖最后由 Jay 于 2018-1-11 10:59 编辑一、豆瓣音乐 今天爬的是豆瓣音乐top250,比较简单,主要是练练手。 1、加了请求头,本来没加,调试几次突然没数据了,加了请求头开始也没好,后来又好了,可能是网络原因; 2、这次是进入信息页爬的数据,上次爬电影没采用这种方法,缺少了部分数据; 3、数据的预处理用了很多if函数 数据分析 87291、部分数据可以见上图 2、中国音乐作者还是很多的。 3、随着音乐设备和网络的普及,流行音乐的发展,可以看出2000年后作品越来越多,到2010年又积极下滑(经典就是经典,无法吐槽现在的音乐) 4、风格大家可以看出流行,摇滚,民谣占了一大半。 5、最后弄了一首周董的《不能说的秘密》做词云,想想小时候都是回忆啊。 代码片段 8730二、微打赏 网站分析 打开网站,翻页网页不变,看看是post的请求,很好办,直接把参数怼进去,这里只要切换page就能进行翻页。 8731json格式,这里post返回的是json数据,解析json数据就行,小技巧:看preview,解析起来嗖嗖哒。这里需要提取活动的名称,id和参与打赏的人数。这个后面详细页用的到。 87428740 详细页,依旧是post,依旧是json数据,这里的参数pro_id为之前的爬取的id,这一页20个信息,通过前面的参与打赏人数构造出有多少页,继续怼参数。 8732代码片段 87338734三、阳光电影 爬虫分析 这里涉及跨页的爬取,需要理清爬虫的思路。首先打开网站,需爬取前11个分类的电影数据,经典影片格式不一样,爬虫时过滤掉了。 8735进入电影列表页后,正则爬取页数和电影的分类标签,以此构造分页url,然后爬取电影的名字和url。 8736最后在详细页爬取电影的下载地址,爬取结果如下: 8737 代码片段 8738 作者:罗攀 来源:Python中文社区
-
本帖最后由 TOM666 于 2018-1-3 11:37 编辑本文简要讲述用Python爬取微博移动端数据的方法。可以看一下Robots协议。另外尽量不要爬取太快。如果你毫无节制的去爬取别人数据,别人网站当然会反爬越来越严厉。至于为什么不爬PC端,原因是移动端较简单,很适合爬虫新手入门。有时间再写PC端吧! 环境介绍 Python3/Windows-10-64位/微博移动端 网页分析 以获取评论信息为例(你可以以自己的喜好获得其他数据)。如下图: 8107 在这里就会涉及到一个动态加载的概念,也就是我们只有向下滑动鼠标滚轮才会加载出更多的评论数据。这也是网页经常使用的方式。接下来就应该找到评论信息的真实网址,找到真实网址的方法就是打开浏览器的开发者工具,火狐/谷歌是F12键。打开如下: 8108 打开以后点击网络,网络用来记录浏览器和服务器交换的信息。接下来将鼠标滚轮缓慢向下滚动,在这个过程中就会弹出类似于上图的信息,也就是评论信息加载出来了。找到评论信息,应该会在第一条。如下图: 8109 真实网址:https://m.weibo.cn/api/comments/show?id=4160547165300149&page=3 将网址在火狐里面打开如下图: 8110 上面的网址其实pages=3就代表第三页,所以只需模拟网址即可,pages=4,5,6。。。。 另外由于是Json文件,所以提取数据非常方便,只需用切片操作即可。
-
当你想快速共享一个目录的时候,这是特别有用的,只需要1行代码即可实现。 FTP 服务器,在此之前我都是使用Linux的vsftpd软件包来搭建FTP服务器的,现在发现了利用pyftpdlib可以更加简单的方法即可实现FTP服务器的功能。 环境要求 Python 2.7 Windows / Linux 环境搭建 8068一行代码实现FTP服务器 通过Python的-m选项作为一个简单的独立服务器来运行,当你想快速共享一个目录的时候,这是特别有用的。 在需要共享的目录下执行如下命令即可把当前目录共享出去(匿名登录) 8069至此一个简单的FTP服务器已经搭建完成,访问 ftp://127.0.0.1:2121 即可 (默认IP为 127.0.0.1 、端口为 2121 ) 8070可选参数 -i 指定IP地址(默认为本机的IP地址) -p 指定端口(默认为2121) -w 写权限(默认为只读) -d 指定目录 (默认为当前目录) -u 指定用户名登录 -P 设置登录密码 简单示例 上述的一行命令已经可以实现一个简单的FTP服务器,但是要搭建一个功能强大完善的FTP服务所涉及到的配置较多,这时需要使用Pyftpdlib提供的 API 来编写。如下是一个简单的示例 8071perm权限选项 读取权限: "e" =更改目录(CWD,CDUP命令) "l" =列表文件(LIST,NLST,STAT,MLSD,MLST,SIZE命令) "r" =从服务器检索文件(RETR命令) 写入权限: "a" =将数据追加到现有文件(APPE命令) "d" =删除文件或目录(DELE,RMD命令) "f" =重命名文件或目录(RNFR,RNTO命令) "m" =创建目录(MKD命令) "w" =将文件存储到服务器(STOR,STOU命令) "M"=更改文件模式/权限(SITE CHMOD命令) "T"=更改文件修改时间(SITE MFMT命令) 参考 Pyftpdlib文档:http://pyftpdlib.readthedocs.io/en/latest/index.html
-
一年一度的春运又来了,今年我自己写了个抢票脚本。使用Python+Splinter自动刷新抢票,可以成功抢到。(依赖自己的网络环境太厉害,还有机器的好坏) Splinter是一个使用Python开发的开源Web应用测试工具,它可以帮你实现自动浏览站点和与其进行交互,Splinter执行的时候会自动打开你指定的浏览器,访问指定的URL。然后你所开发的模拟的任何行为,都会自动完成,你只需要坐在电脑面前,像看电影一样看着屏幕上各种动作自动完成然后收集结果即可。 12306抢票Python代码片段 1、实现自动登录的函数: 8037 2、开始购票的函数 8038
-
本帖最后由 码小玩 于 2017-12-28 11:03 编辑在数据科学领域,你最常用的编程语言是哪种?对此,不同职业背景下的开发者答案各尽不同,一般来说,Python 和 R 语言是需要重点掌握的,但是如今有一枝独秀悄然而至,其创作理念是像 Python 一样通用、像 R 语言一样适用于统计、像 Perl 一样适用于字符串处理、像线性代数 Matlab 一样强大、像 Shell 一样擅长粘合程序,且可以像 C 语言一样高效,它的名字叫做——Julia。如今,在面对 Python 俨然已成为数据科学和机器学习领域的中流砥柱的窘境之下,Julia 以何种优势与之抗衡,接下来,本文将带你一探究竟。 7859 在 Python 涵盖的众多领域中,数据分析应当是应用最广同时最为重要的。Python 通过加载大量的库、工具和应用程序,使得科学计算和数据分析工作变得快速便捷。 Julia 语言(https://julialang.org/) 专门针对科学计算、机器学习、数据挖掘、大规模线性代数、分布式和并行计算,在 Julia 的使用者眼里,Python 不够快也不够方便。此消彼长,当它擅长某一项工作时,肯定会忽略其他部分。 Julia 语言简介 Julia 由一个四人组成的团队于 2009 年创建,在 2012 年正式对外发布,旨在解决用于科学计算和数据处理的编程语言(比如 Python)和应用程序的缺陷。团队成员追求完美和极致,他们表示: 我们需要一个开放源码且拥有自由许可证的语言。我们希望兼具 C 语言的速度与 Ruby 的动态性。我们希望编程语言具有同像性,既有 Lisp 这样真正的宏,又有 Matlab 这样带有明显的、为人熟知的数学符号。我们希望它像 Python 一样可以用于一般编程,又像 R 语言一样适用于统计学,能够像 Perl 那样自然地用于字符串处理,就可以像 Matlab 那样强力支持线性代数,此外还能像 shell 一样做程序的粘合剂。它能够让初学者轻松入门,又能给资深开发者提供高级特性。我们希望它具有很强的交互性,同时又属于编译型语言。 为了实现这些想法,Julia 遵循了如下策略: 为了更快的速度,定义为编译型语言,而不是解释型。Julia 使用 LLVM 编译器框架进行即时编译(JIT)。在某些情况下,Julia 可以接近甚至达到 C 语言的速度。 采用直接但有用的语法。Julia 语法的简洁程度可以与 Python 媲美,虽然简洁,但是表现力很强。 动态类型。你可以指定变量的类型,如“无符号的32位整数”。但是,你也可以创建类型的层次结构以允许处理特定类型变量,例如编写一个接受整数的函数,通常不指定整数长度。最后如果在特定的上下文中不需要,你可以不用完全输入。 可以调用 Python、C 和 Fortran 编写的库。Julia 可以直接调用 C 语言和 Fortran 编写的外部库。也可以通过 PyCall 库与 Python 代码进行交互,此外, Python 和 Julia 之间的数据可以共享。 元编程。Julia 程序可以生成其他的 Julia 程序,甚至可以修改自己的代码,就像 Lisp 这样的语言一样。 Julia 相比 Python 的优势 Julia 从一开始就是为科学和数值计算而设计的。因此,Julia 在此领域具有众多优点也就不足为奇。它的优点如下: 速度更快。Julia 的 JIT 编译和类型声明意味着它可以比“纯粹的”、未被优化的 Python 快几个数量级。虽然 Python 可以通过 PyPy 或者 Cython 等方式进行速度优化,但 Julia 从设计之初就具有天然的速度优势。 友好的数学语法。Julia 的主要目标受众是科学计算语言和 Matlab、R、Mathematica、Octave 等环境的用户。Julia 的数学运算语法看起来更像计算机世界之外的普通数学公式,它使得非程序员很容易掌握。 自动内存管理。像 Python 一样,Julia 不需要用户太多关注分配和释放内存的细节,它提供了一些针对垃圾回收的手动控制方法。这样的好处在于,假设你从 Python 转投 Julia,你依然可以享有 Python 一样的便利。 并行性。只有充分利用机器上可用的全部资源(特别是多核),数学和科学计算领域才能够蓬勃发展。Python 和 Julia 都支持并行运算。但是,在并行计算方面,Julia 的语法比 Python 更简单,这样就降低了并行运算的使用门槛,使其能够得到更广泛的应用。 Python 相比 Julia 的优势 Python 是一种易于学习的通用计算语言,已经发展成为科学计算领域的主力军。Python 之所以能够在数据科学领域占据重要地位,得益于它的下列优势: Julia 数组索引从 1 开始。Julia 的这个特性表面上看问题不大,但是我们不能排除它潜在的风险。在大多数语言中,包括 Python 和 C 语言,数组的第一个元素通常用 0 来访问,例如,string[0] 表示 Python 字符串中的第一个字符。但是 Julia 则使用 1 作为数组中的第一个元素,它这样做的原因是为了迎合一些数学和科学应用(比如Mathematica)的用户。虽然默认情况下 Julia 采用1索引,但是可以通过其他手段(https://docs.julialang.org/en/latest/devdocs/offset-arrays/) 让其支持 0 索引,毕竟用 1 作为第一个元素索引的方式违背程序员的编程习惯。 Julia 还很年轻。Julia 语言自2009年以来一直处在开发阶段,并且一路上增减了多种功能。尽管开发者一直宣称开发接近尾声(https://github.com/JuliaLang/julia/milestone/4),但实际上它仍然没有发布1.0版本。 Python 拥有更丰富的第三方软件包。Python 数量庞大且实用的第三方软件包是它能够吸引大量开发者的杀手锏。而年轻的 Julia 语言的生态系统稍显薄弱,它使用了很多现有的 C 和 Python 库,但是开发 Julia 自己软件包的任务依然迫在眉睫。 Python 具有庞大的社区优势。如果编程语言没有一个强大、活跃的社区支持,那么它的根基是不扎实的。Python 现在正拥有着一个强大的社区。虽然 Julia 的社区发展迅猛,但是和 Python 社区的规模相比依然不值一提。 总结 一个是经过 8 年开发的新秀 Julia,一个是圈内公认的标榜 Python,两种编程语言在数据科学领域各有千秋,综合以上的优劣对比,你会更倾向选择哪种编程语言入门呢?
-
本帖最后由 码小玩 于 2017-12-12 14:45 编辑双十一才过完没几天,这不,双十二又来了。继热水器罢工后,家里洗衣机的余热也在这几天发挥殆尽,正式宣告停工,摆明了就是要榨干我最后一点血汗钱嘛... 不过,比起小玩,美团的程序员们估计更加欲哭无泪。 #美团程序员的年终奖金可能没了# 快到年底了,有小伙伴在盘算着请假过年的事,有人开始为年会节目摩拳擦掌,还有人在惦记着年终奖流口水,不过美团的程序员们怕是要提前宣告与年终奖无缘了... 上周12 月 7 日中午 11 时左右,有网友发微博称,外卖订单付款出现延迟,部分用户付款后系统仍提示尚未付款;团购页面内容也无法正常显示。美团服务器出现大面积崩溃,包括外卖、团购在内的业务均受到影响。 有网友吐槽美团的程序员是不是放寒假了? 6505就连微博技术也对此调侃了一番: 6506 让万千网友饿肚子,用户流失是难免的了,但后来美团对部分重复下单的网友做了退款和致歉红包处理,看来没什么事是红包解决不了的。 6507 网友评论: @lxl:美团的程序员这一年白干了 @MR无尾熊:用户气死了,饿了么笑死了,美团哭死了,程序员……没了 @强行**:程序员要被祭天了 @差不多KK:吓的我赶紧藏好写好的bug @Shawn-沈煜:这不是运维的事么 #Python将被纳入高考内容# 未来世界的人将会分成两种人:一种是会编程的人,另一种是不会编程的人。人工智能时代的来临,中国也越来越重视编程教育,特别是在编程语言的教育中,Python 越来越受欢迎。 这不,2018 年 3 月的全国计算机等级考试(NCRE)又即将开始报名,从 2018 年 3 月开始,将实施 2018 版考试大纲,并按新体系开考各个考试级别。具体调整内容如下: 6502 除了全国计算机等级考试的变动外,编程语言在升学中的比重逐渐加大,将成为高考加分的一大利器。近期,「海码爸爸」公众号发布的一则文章爆料称:浙江省信息技术课程改革方案出台,Python 确定进入浙江省信息技术高考,从 2018 年起浙江省信息技术教材编程语言将会从 VB 更换为Python。也就是说:Python 语言将纳入高考内容之一。 另外,山东 2017 年秋季正式出版的《小学信息技术》,也大幅度引入了 Scratch、Python 等编程语言,围绕将开源硬件、人工智能、3D 创意设计等作为了重要内容。也就是说就连小学生也开始接触学习 Python 了,由此可见,Python 语言课程化也将成为孩子学习的一种趋势。 #太拼了!张朝阳作息表刷爆朋友圈# 每天凌晨4点半起床,早起进行1小时英语直播……张朝阳的一张行程表刷爆了朋友圈。 6503 每天只睡四个小时,够吗? “秒睡,睡多了不舒服,超过四个小时难受,睡四个小时特别好。”张朝阳还表示:“要多学习、多读书、学好英文,了解世界,去吸收全世界的各种价值观,寻找自己存在的意义,每个人追求人生的意义,不止追求财富,觉得要做一些有意义的事情的时候,人生就会开始变得豁然开朗起来。” 网友们纷纷评论: @可可:人家那么有钱还那么拼,你还有啥理由不努力? @duomiro:凌晨4点半起床……难怪我这么穷! @小勇卷毛:记者:请问你为什么能成功?张朝阳:你见过凌晨四点的北京吗! @可:我若凌晨四点半醒来,那一定是失眠 最后,小玩再给大家推荐一部比“戏精的诞生”更好看的综艺——国 家 宝 藏。乾隆爸爸的农家乐审美可是很精彩呐~ 下周再见啦。
-
本帖最后由 Jackie-666 于 2017-11-30 17:48 编辑Python 诞生之初就被誉为最容易上手的编程语言。进入火热的 AI 人工智能时代后,它也逐渐取代 Java,成为编程界的头牌语言。更有码农圈金句:「学完 Python,可以上天」佐证其火热程度! 不仅如此,在编程语言中, Python 长期稳居前五,它已经成为数据分析、人工智能领域必不可少的工具,还被越来越多地公司用于网站搭建。 正是因为如此,导致Python 方向岗位的薪水在水涨船高,成为目前最有潜力的编程语言之一。Python 是一门新手友好、功能强大、高效灵活的编程语言,学会之后无论是想进入数据分析、人工智能、网站开发这些领域,还是希望掌握第一门编程语言,都可以用 Python 来开启无限未来的无限可能! 在这么火热且“多金”的背后,快跟随小编来看下Python的具体薪酬报告吧! 一、 2017年Python岗位全年共招聘147591人 招聘网站数据显示,平均每月招聘人数需求12331人, 其中10月招聘需求最多,高达20600人。 59005901
-
小白用户想体验一下强大的华为对象存储能力,方便以后将小宝的照片备份到云端,所以先要学习一下怎么使用,结果发现很多问题。 1、环境准备 python语言相对简单,使用python sdk开发容易上手,对于性能要求不高的场景非常合适。 但是python使用哪个版本?需要怎样的libssl库?对于每个新手都要折腾一番。 2、python的sdk的包路径和入门教程中的不一致 实际源码路径是com.obs.client.obs_client,但是入门教程中com.huawei.obs.client.obs_client 文档没有及时刷新啊 3、在bucket中可以创建bucket? 先创建了一个bucket obs4pic,然后将server的那么修改为'obs4pic.obs.cn-north-1.myhwclouds.com' 然后再调用 obsClient.createBucket('obs4pic001'),结果在控制台上看,没有创建成功,使用api查询,确认没有创建成功, 但是createBucket返回值为200,那么去哪儿了呢,在控制台上一看,发现新创建的obs4pic中增加了一个对象,名字为obs4pic001 4、出错定位信息比较少,相关案例太少 第一次createbucket的时候返回403: python createbuckettest.py common msg:status: 403 ,errorCode:RequestTimeTooSkewed ,errorMessage: The difference between the request time andthe current time is too large.猜测server端的时间为北京时间,然后修改客户端时间,虽然可以通过,但是假设我不知道server端的时间,那如何进行时间的修改呢? 其他问题继续发现中。 我理解华为云是国内少数可以和阿里云势均力敌的。公有云多几个玩家,对普通用户都是好事,可以使用更加便宜体验更好的服务。 华为对象存储的在用户界面的体验上还有很多提升空间啊。
mosquitoflying
发表于2017-11-28 22:16:59
2017-11-28 22:16:59
最后回复
W--wangzhiqiang
2020-10-20 17:36:57
13336 5
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签