忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 3230 | 回复: 9

Python VS Julia,谁会是明天的数据分析和机器学习语言 [复制链接]

论坛徽章:
6
金牛座
日期:2015-09-22 17:38:01亥猪
日期:2015-09-28 16:18:152015亚冠之胡齐斯坦钢铁
日期:2015-09-30 11:44:0115-16赛季CBA联赛之四川
日期:2015-12-10 17:35:5515-16赛季CBA联赛之八一
日期:2016-06-14 10:48:10shanzhi
日期:2016-06-17 17:59:31
发表于 2018-01-26 09:26 |显示全部楼层
Python大家都很熟悉了,近年来在编程语言圈里风气日盛,原因是被数据分析处理和机器学习所青睐。‘Python良好的生态系统,包括各种库、工具、应用软件等等提升了科学计算和数据分析工作的效率。有人甚至放出了“人生苦短,我用Python”的口号,可见一斑。
但是对于支持Julia语言的人来说,他们觉得Python在处理科学计算和数据风险方面速度还是不够快。他们觉得Julia确实是天生用来进行科学计算、机器学习、数据挖掘、大规模线型代数和分布式并行计算的。他们的口号是“我们是贪婪的”,因为Julia想解决所有用于科学计算和数据处理的语言的短板,而取而代之。
什么是Julia语言
Julia创建于2009年,由四个牛人组成的team所创。在2012年的时候发布于世。看看这四个人牛B哄哄的发言:“我们希望它是一个开源的语言,并拥有相关的许可认证;我们希望它既有C语言的速度又有Ruby语言的弹性;我们希望它非常容易理解,拥有像Lisp一样的宏又有像Matlab一样的数学记号;我们希望它像Python那样通用,像R语言那样易于统计计算、像Perl一样简单自然的处理字符串,像Matlab一样强大的处理线性代数,像shell一样能把各种语言联合在一起;我们希望它易于学习,又能让黑客们喜欢;我们希望它是交互式的,又希望它可以编译。” 看完这段话,你明白他们的口号为什么是“我们是贪婪的”了吗?请问,还有什么你不能做到的吗?
那实际发布的Julia语言是什么样子的呢?
  • 可编译,非解释性的语言,追求速度。Julia使用基于LLVM编译架构的即时编译编译器。最好的时候,它能接近或达到C语言的速度。
  • 拥有简单直接的语法。非常像Python。
  • 动态类型变量和静态类型变量兼备。可以显式的定义一个unsigned 32-bit integer,也可以不用定义变量的类型和长度。
  • Python,C, Fortran语言的库文件通吃。Julia可以直接调用C和Fortran的库文件,也可以通过一个PyCall的借口调用Python的各种库Module。
  • 元编程。即“程序能够编写程序”。非常像Lisp语言。

Julia VS Python: Julia的优势
Juila一开始就是为科学计算设计的,所以毫不奇怪它具有如下优势:
  • 默认情况下速度更快。得益于它的即时编译和灵活的类型定义,Julia将纯Python,即未经过优化的Python甩出了几条街。
  • 数学友好的语法。Julia的数学操作语法更像是传统教学使用的语法,这使更多的对计算机不熟悉的数学工作者能很快上手Julia。
  • 自动内存管理。与Python一样,用户不需要担心内存管理。
  • 并行计算。和Python一样可以提供并行计算,但语法更简单,降低了使用门槛。

Python VS Julia: Python的优势
  • Julia的数组是从1开始索引的。这个问题似乎并不起眼,但是却和C、Python等语言不一致,可能会影响到编程者的习惯。
  • Julia还很嫩。至今也没有看到1.0版本。
  • Python有很多的第三方库。
  • Python拥有巨大的社区。这是Python巨大的优势。

总结
虽然Julia还算是个新生事物,但笔者认为还是颇具前景。如果感兴趣的话可以前往

论坛徽章:
6
数据库技术版块每日发帖之星
日期:2015-11-27 06:20:00程序设计版块每日发帖之星
日期:2015-12-01 06:20:00每日论坛发贴之星
日期:2015-12-01 06:20:0015-16赛季CBA联赛之佛山
日期:2017-03-26 23:38:0315-16赛季CBA联赛之江苏
日期:2017-07-17 10:08:4415-16赛季CBA联赛之北京
日期:2018-03-04 17:01:50
发表于 2018-01-26 17:43 |显示全部楼层
Julia的数组是从1开始索引的。这个问题降低了使用意愿

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
发表于 2018-01-26 22:01 |显示全部楼层
Python是个“好”语言。

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
发表于 2018-01-27 10:53 |显示全部楼层
数组元素集中存储,为地址计算方便采用了0索引。

如果离散存储,从1索引是更好的选择,更容易理解

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
发表于 2018-01-27 10:56 |显示全部楼层
理解语言设计的方方面面,对自主设计中文编程语言也是很有帮助的

论坛徽章:
6
数据库技术版块每日发帖之星
日期:2015-11-27 06:20:00程序设计版块每日发帖之星
日期:2015-12-01 06:20:00每日论坛发贴之星
日期:2015-12-01 06:20:0015-16赛季CBA联赛之佛山
日期:2017-03-26 23:38:0315-16赛季CBA联赛之江苏
日期:2017-07-17 10:08:4415-16赛季CBA联赛之北京
日期:2018-03-04 17:01:50
发表于 2018-01-27 19:53 |显示全部楼层
回复 4# 爻易

从1索引是更好的选择,更容易理解


大神, 举个例子

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
发表于 2018-01-27 20:00 |显示全部楼层
回复 6# dorodaloo

比如数个手指头,你会从0开始数吗?数学里的m*n矩阵,几乎都是从1索引的。

曾经看过某C语言算法书,还专门讲过如何转换基索引

论坛徽章:
6
数据库技术版块每日发帖之星
日期:2015-11-27 06:20:00程序设计版块每日发帖之星
日期:2015-12-01 06:20:00每日论坛发贴之星
日期:2015-12-01 06:20:0015-16赛季CBA联赛之佛山
日期:2017-03-26 23:38:0315-16赛季CBA联赛之江苏
日期:2017-07-17 10:08:4415-16赛季CBA联赛之北京
日期:2018-03-04 17:01:50
发表于 2018-01-27 20:11 |显示全部楼层
本帖最后由 dorodaloo 于 2018-01-27 20:35 编辑

回复 7# 爻易

忘了, 看过似乎这

  1.     int array[] = {11, 22, 33};
  2.     int *julia = &array[0] - 1;
  3.     for (unsigned i = 1; i <= 3; i++)
  4.         printf ("%d ", julia[i]);
复制代码



大神, 如何转换?

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
发表于 2018-01-27 20:13 |显示全部楼层
回复 8# dorodaloo

对,就这样前后挪一个位置

论坛徽章:
0
发表于 2018-08-14 10:12 |显示全部楼层
又一个风口浪尖上的
哈哈哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

第67期:Neo4j图数据库平台架构最佳实践
【微学堂】10月18日 20:00(周四)

当下,数据的规模和类型每时每刻都在呈几何级数的增长,仅能够管理大量的数据是不够的,关键是能从海量数据中发掘出有用的信息,特别是数据之间的关联,能高效存储和处理数据之间关联的新型数据库为图数据库。 本讲座将介绍Neo4j图数据库的基本概念、设计特点、架构和经典应用场景实战分享。

进入课堂>>
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP