k***5 发帖数: 393 | 1 主要是数据处理, 计算, plot, 有时候需要编译一下给非技术人员使用。
平时主要用c++和matlab。前者写得慢, 数据处理和plot都麻烦。后者太贵了,什么包都
要license, 而我们用network license, 有时候人太多了就不能checkout了。 |
n*********u 发帖数: 1030 | 2 python, if you don't care about performance that much. |
x***u 发帖数: 297 | 3 也推荐Python。还建议一下Spyder 编辑器。Spyder的界面据说是和Matlab很像。几年
前Ipython (jupyter) Notebook没出来的时候用过。觉得不错。
新的JupyterLab看着很有前途,但现在还是alpha: |
n******7 发帖数: 12463 | 4 同推荐python
numpy scipy pandas scikit-learn
不要碰R |
g****t 发帖数: 31659 | 5 如果是做东西卖钱,有条件还是占个坑用matlab。
因为其他的开源工具,就算是最小二乘法,你也不知道有没有
没有填的坑。
如果是自己做研究,OCtave首选。因为它和matlab一样。GNU plot 够用了。
不用学新东西。
Python,R这些要一定学习成本。
主要是数据处理, 计算, plot, 有时候需要编译一下给非技术人员使用。
【在 k***5 的大作中提到】 : 主要是数据处理, 计算, plot, 有时候需要编译一下给非技术人员使用。 : 平时主要用c++和matlab。前者写得慢, 数据处理和plot都麻烦。后者太贵了,什么包都 : 要license, 而我们用network license, 有时候人太多了就不能checkout了。
|
m******r 发帖数: 1033 | 6 说的太对了。 二语言很难学,即便学了, 对于处理数据(dirtywork)也没啥用。
争取把tutorial过一遍。
【在 n******7 的大作中提到】 : 同推荐python : numpy scipy pandas scikit-learn : 不要碰R
|
w*****g 发帖数: 16352 | 7 她要编译给外行用,奈何!
★ 发自iPhone App: ChineseWeb 13
【在 n******7 的大作中提到】 : 同推荐python : numpy scipy pandas scikit-learn : 不要碰R
|
w*****g 发帖数: 16352 | 8 蟒蛇还好啊,如果不OOP,两周下来怎么也能排代码了。
★ 发自iPhone App: ChineseWeb 13
【在 g****t 的大作中提到】 : 如果是做东西卖钱,有条件还是占个坑用matlab。 : 因为其他的开源工具,就算是最小二乘法,你也不知道有没有 : 没有填的坑。 : 如果是自己做研究,OCtave首选。因为它和matlab一样。GNU plot 够用了。 : 不用学新东西。 : Python,R这些要一定学习成本。 : : 主要是数据处理, 计算, plot, 有时候需要编译一下给非技术人员使用。
|
g****t 发帖数: 31659 | 9 是的。python很快。
【在 w*****g 的大作中提到】 : 蟒蛇还好啊,如果不OOP,两周下来怎么也能排代码了。 : : ★ 发自iPhone App: ChineseWeb 13
|
n******7 发帖数: 12463 | 10 为何是她?
做成docker image如何? 我还没用过docker,但是感觉用来做这个很合适啊
【在 w*****g 的大作中提到】 : 她要编译给外行用,奈何! : : ★ 发自iPhone App: ChineseWeb 13
|
|
|
p**z 发帖数: 65 | 11 如果在方便的同时还比较在乎暴力循环等的裸运算速度,那么我强力推荐Julia:
http://julialang.org/
https://en.wikipedia.org/wiki/Julia_(programming_language)
它的语法简洁表达力强(有点像Matlab和Python),因为应用了比较好的JIT技术并且
专门针对科学计算优化,所以速度很快,在函数模块都运行过一次被编译好了以后,可
以接近C/C++。它也支持class, 但是functional programming更突出,也符合现代语言
发展的潮流。我觉得唯一缺点是它很新,还在发展中,所以语言本身还可能会有变化,
还有就是开源库虽然也不少但还是远不能跟Python和R比。
我对Matlab和Python比较熟,R,Octave和Scilab则都用过一点。在碰到Julia之前最喜
欢Python,简洁方便库丰富,对于不是专门搞统计研究、而且需要general
programming language功能的(比如系统啊网络啊数据库啊之类),我个人觉得Python
是最好了。但是有两个大问题让我耿耿于怀:在没法向量化、非用循环不可的时候死慢
;另外class定义太随便,任何地方都可以随意给一个class加成员变量。
Julia这两个问题都没有,而且还有一些非常方便的语言特性。在Windows上,我测试它
的循环速度比Matlab和Java都快几倍,比C#稍快一点,比Python就要快差不多两个数量
级了(我相信R, Octave和Scilab跟Python差不太多或稍慢一点)。
从Julia调用Python或者C/C++的库非常容易,而且流行的Python库比如matplotlib.
pyplot和pandas这些都有port好的。这个就是后发优势了,写这个语言的团队开始就考
虑好了一定要很好的兼容Python和C系,最后搞到SciPy 2013和PyCon APAC 2015都请他
们去发言,在Python的会议上推销Julia :-)。
https://www.youtube.com/watch?v=Eb8CMuNKdJ0&ab_channel=Enthought
https://www.youtube.com/watch?v=6Se0GwaG1NQ&ab_channel=PyConTaiwan |
n******7 发帖数: 12463 | 12 又去看了一眼,他们的R benchmark code还是这么写的
## pi_sum ##
pisum = function() {
t = 0.0
for (j in 1:500) {
t = 0.0
for (k in 1:10000) {
t = t + 1.0/(k*k)
}
}
return(t)
}
这个问题被人指出好几年了,这些人就是装着没看见
随便改成矢量化操作,速度就是40X提高(实测)
根据他们的数据,就比Julia快4倍了
我是不会浪费时间在吹nb产品上的
【在 p**z 的大作中提到】 : 如果在方便的同时还比较在乎暴力循环等的裸运算速度,那么我强力推荐Julia: : http://julialang.org/ : https://en.wikipedia.org/wiki/Julia_(programming_language) : 它的语法简洁表达力强(有点像Matlab和Python),因为应用了比较好的JIT技术并且 : 专门针对科学计算优化,所以速度很快,在函数模块都运行过一次被编译好了以后,可 : 以接近C/C++。它也支持class, 但是functional programming更突出,也符合现代语言 : 发展的潮流。我觉得唯一缺点是它很新,还在发展中,所以语言本身还可能会有变化, : 还有就是开源库虽然也不少但还是远不能跟Python和R比。 : 我对Matlab和Python比较熟,R,Octave和Scilab则都用过一点。在碰到Julia之前最喜 : 欢Python,简洁方便库丰富,对于不是专门搞统计研究、而且需要general
|
n******7 发帖数: 12463 | 13 又看了下python code
都import numpy了
然后来个
def pisum():
sum = 0.0
for j in range(1, 501):
sum = 0.0
for k in range(1, 10001):
sum += 1.0/(k*k)
return sum
你说这是啥意思?
【在 p**z 的大作中提到】 : 如果在方便的同时还比较在乎暴力循环等的裸运算速度,那么我强力推荐Julia: : http://julialang.org/ : https://en.wikipedia.org/wiki/Julia_(programming_language) : 它的语法简洁表达力强(有点像Matlab和Python),因为应用了比较好的JIT技术并且 : 专门针对科学计算优化,所以速度很快,在函数模块都运行过一次被编译好了以后,可 : 以接近C/C++。它也支持class, 但是functional programming更突出,也符合现代语言 : 发展的潮流。我觉得唯一缺点是它很新,还在发展中,所以语言本身还可能会有变化, : 还有就是开源库虽然也不少但还是远不能跟Python和R比。 : 我对Matlab和Python比较熟,R,Octave和Scilab则都用过一点。在碰到Julia之前最喜 : 欢Python,简洁方便库丰富,对于不是专门搞统计研究、而且需要general
|
k***5 发帖数: 393 | 14 多谢各位的推荐了。我还是从python弄起吧。其实以前学过一点点,但是写code的时候
几种语言都在用, syntax弄得自己都糊涂了。
请问python入门有什么推荐吗?到底是学python 2还是3? ide用什么?
【在 g****t 的大作中提到】 : 是的。python很快。
|
p**z 发帖数: 65 | 15 Julia的benchmark在这件事情上没有解释清楚,所以被不少人诟病。
用过Python和R的都知道,能矢量化的一定要矢量化;矢量化以后,就不是Python
或者R自己在执行算法了,底层算法其实都是调用下面的库,这些库一般是C/C++
或者Fortran写的,所以速度很快。对于常见的问题,流行的数值运算库也就那么几
个,大家用的都差不多。Julia也有包装好的这样的库,所以对矢量化的问题来说大
家都是一样的。
问题是我在实际工程应用中碰到很多情况不能矢量化。比方说计算一个非线性的传播
方程,需要把一段距离分成很多小段,每段的计算是依赖于前一段的结果的,而且这
个计算是非线性的,所以必须用循环一步一步算。
还有一些问题虽然能够矢量化,但是因为有各种特殊情况,如果矢量化的话需要很多
预处理。比如对时间序列做对齐和整理,剔除各种不合理情况。我自己觉得矢量化很
不自然,常常要考虑和试错很久,不如用循环写方便。
所以benchmark的初衷是用本语言实现循环,不用矢量化,来比较裸运算速度。
这个比较只有在问题不能或不变被矢量化时才公平。但是它用的例子不好,对于Python
和R,实际上只要能矢量化没有人会写暴力循环的,
我觉得Julia最好的地方就是,不用为了语言效率来改变编程风格。如果一个问题适合
用矢量化就用矢量化,如果适合用循环就用循环,或者甲习惯都用矢量化,乙习惯都用
循环,那就用自己习惯的。另外,在prototype稳定后,不需要为了加快运算速度而把程
序再改写成C/C++的,这可以省掉大量人力和时间,减少出错机会。
我以前都是Python的粉丝,公司里好几个同事都因为我的介绍开始学习用Python做工
程问题。但是几个月以前学习使用了Julia以后,我就变Julia的粉丝了。我只是觉得
有这个好东西很想告诉别人,但是语言这回事,各有所爱,所以我也不是要说服谁
Julia
一定跟好更合适他,各自根据自己的情况和喜好选择就好。
【在 n******7 的大作中提到】 : 又看了下python code : 都import numpy了 : 然后来个 : def pisum(): : sum = 0.0 : for j in range(1, 501): : sum = 0.0 : for k in range(1, 10001): : sum += 1.0/(k*k) : return sum
|
g****t 发帖数: 31659 | 16 Python,R的优势是库多。
库不够的语言,如果新学一门,我个人觉得没什么
能比swift有优势。swift非常容易学。速度快开源,背后有大公司。
设计严谨。
: Julia的benchmark在这件事情上没有解释清楚,所以被不少人诟病。
: 用过Python和R的都知道,能矢量化的一定要矢量化;矢量化以后,就不是
Python
: 或者R自己在执行算法了,底层算法其实都是调用下面的库,这些库一般是C/C
: 或者Fortran写的,所以速度很快。对于常见的问题,流行的数值运算库也就那
么几
: 个,大家用的都差不多。Julia也有包装好的这样的库,所以对矢量化的问题来
说大
: 家都是一样的。
: 问题是我在实际工程应用中碰到很多情况不能矢量化。比方说计算一个非线性的
传播
: 方程,需要把一段距离分成很多小段,每段的计算是依赖于前一段的结果的,而
且这
: 个计算是非线性的,所以必须用循环一步一步算。
: 还有一些问题虽然能够矢量化,但是因为有各种特殊情况,如果矢量化的话需要
很多
【在 p**z 的大作中提到】 : Julia的benchmark在这件事情上没有解释清楚,所以被不少人诟病。 : 用过Python和R的都知道,能矢量化的一定要矢量化;矢量化以后,就不是Python : 或者R自己在执行算法了,底层算法其实都是调用下面的库,这些库一般是C/C++ : 或者Fortran写的,所以速度很快。对于常见的问题,流行的数值运算库也就那么几 : 个,大家用的都差不多。Julia也有包装好的这样的库,所以对矢量化的问题来说大 : 家都是一样的。 : 问题是我在实际工程应用中碰到很多情况不能矢量化。比方说计算一个非线性的传播 : 方程,需要把一段距离分成很多小段,每段的计算是依赖于前一段的结果的,而且这 : 个计算是非线性的,所以必须用循环一步一步算。 : 还有一些问题虽然能够矢量化,但是因为有各种特殊情况,如果矢量化的话需要很多
|
A*******e 发帖数: 2419 | 17 小众,不如python
【在 p**z 的大作中提到】 : 如果在方便的同时还比较在乎暴力循环等的裸运算速度,那么我强力推荐Julia: : http://julialang.org/ : https://en.wikipedia.org/wiki/Julia_(programming_language) : 它的语法简洁表达力强(有点像Matlab和Python),因为应用了比较好的JIT技术并且 : 专门针对科学计算优化,所以速度很快,在函数模块都运行过一次被编译好了以后,可 : 以接近C/C++。它也支持class, 但是functional programming更突出,也符合现代语言 : 发展的潮流。我觉得唯一缺点是它很新,还在发展中,所以语言本身还可能会有变化, : 还有就是开源库虽然也不少但还是远不能跟Python和R比。 : 我对Matlab和Python比较熟,R,Octave和Scilab则都用过一点。在碰到Julia之前最喜 : 欢Python,简洁方便库丰富,对于不是专门搞统计研究、而且需要general
|
A*******e 发帖数: 2419 | 18 用swift还不如继续c++
【在 g****t 的大作中提到】 : Python,R的优势是库多。 : 库不够的语言,如果新学一门,我个人觉得没什么 : 能比swift有优势。swift非常容易学。速度快开源,背后有大公司。 : 设计严谨。 : : : Julia的benchmark在这件事情上没有解释清楚,所以被不少人诟病。 : : 用过Python和R的都知道,能矢量化的一定要矢量化;矢量化以后,就不是 : Python : : 或者R自己在执行算法了,底层算法其实都是调用下面的库,这些库一般是C/C : : 或者Fortran写的,所以速度很快。对于常见的问题,流行的数值运算库也就那
|
m**u 发帖数: 541 | 19 继续用C++吧,你所说的问题,用哪个语言你都会遇到。 |
w*****g 发帖数: 16352 | 20 朱丽娅没有严格意义上的Class叭,Type只是像c里的construct,然后函数有Multiple
dispatch。
★ 发自iPhone App: ChineseWeb 13
【在 p**z 的大作中提到】 : 如果在方便的同时还比较在乎暴力循环等的裸运算速度,那么我强力推荐Julia: : http://julialang.org/ : https://en.wikipedia.org/wiki/Julia_(programming_language) : 它的语法简洁表达力强(有点像Matlab和Python),因为应用了比较好的JIT技术并且 : 专门针对科学计算优化,所以速度很快,在函数模块都运行过一次被编译好了以后,可 : 以接近C/C++。它也支持class, 但是functional programming更突出,也符合现代语言 : 发展的潮流。我觉得唯一缺点是它很新,还在发展中,所以语言本身还可能会有变化, : 还有就是开源库虽然也不少但还是远不能跟Python和R比。 : 我对Matlab和Python比较熟,R,Octave和Scilab则都用过一点。在碰到Julia之前最喜 : 欢Python,简洁方便库丰富,对于不是专门搞统计研究、而且需要general
|
|
|
w*****g 发帖数: 16352 | 21 程师用anaconda python distribution吧,几十,几百行的小计算器用自带的Jupyter
Notebook足够了
★ 发自iPhone App: ChineseWeb 13
【在 k***5 的大作中提到】 : 多谢各位的推荐了。我还是从python弄起吧。其实以前学过一点点,但是写code的时候 : 几种语言都在用, syntax弄得自己都糊涂了。 : 请问python入门有什么推荐吗?到底是学python 2还是3? ide用什么?
|
w*****g 发帖数: 16352 | 22 for (j in 1:500)
擦,这括弧放的的位置很奇葩啊。
★ 发自iPhone App: ChineseWeb 13
【在 n******7 的大作中提到】 : 又去看了一眼,他们的R benchmark code还是这么写的 : ## pi_sum ## : pisum = function() { : t = 0.0 : for (j in 1:500) { : t = 0.0 : for (k in 1:10000) { : t = t + 1.0/(k*k) : } : }
|
c*********e 发帖数: 16335 | 23 weidong和wdong是一个人吗?
Jupyter
【在 w*****g 的大作中提到】 : 程师用anaconda python distribution吧,几十,几百行的小计算器用自带的Jupyter : Notebook足够了 : : ★ 发自iPhone App: ChineseWeb 13
|
w*****g 发帖数: 16352 | 24 我是程狮,那个是程猿。
★ 发自iPhone App: ChineseWeb 13
【在 c*********e 的大作中提到】 : weidong和wdong是一个人吗? : : Jupyter
|
J**********r 发帖数: 508 | 25 还是C++好,最好的编程语言。有C++的基础,学其他真的不费劲。
【在 m**u 的大作中提到】 : 继续用C++吧,你所说的问题,用哪个语言你都会遇到。
|
n******7 发帖数: 12463 | 26 哪个更高级?
当年我还自己比较了一下才确认这不是一个人的。。
【在 w*****g 的大作中提到】 : 我是程狮,那个是程猿。 : : ★ 发自iPhone App: ChineseWeb 13
|
p**z 发帖数: 65 | 27 是的,Julia的class叫做Type, 比较像C的struct,可以有constructor,abstract
class可以有inheritance(subtype)。但是,functions不属于class,code写在class
外面,scope缺省是本module。用multiple dispatch来实现polymorphism。
我一开始也非常不习惯,但是这样的设计有一定道理。传统OOP在class里面有method,
不同class有重名的method没关系,根据调用者object的类型调用各自的method,其实
是single-dispatch polymorphism。据我理解(如果有错请懂行的人纠正)在实现
时,其实就是把调用者的object作为第一个参数传进去的(在Python里这一点特别清楚,
因为在class下的function第一个参数都是self)。multiple dispatch就是single
dispatch的generalization,到底调用哪一个版本的函数是所有参数的类型共同决定的,
并不只限于第一个。这个听上去像静态类型语言的function overloading,但是Julia
是动态类型语言,函数参数类型是可以不提前声明的。multiple dispatch可以对每一种
类型组合都生成专门的优化版本(很多时候这是编译器自动做的),这是动态类型的
Julia可以达到接近静态类型语言的performance的重要原因之一。
Multiple dispatch在特定应用里也更加直观,具体例子可以见:
https://www.quora.com/Julia-programming-language-What-are-the-advantages-of-
multiple-dispatch
(请自己复制粘贴完整的链接到浏览器-论坛自动生成的链接会丢掉第二行的部分)
Multiple
【在 w*****g 的大作中提到】 : 朱丽娅没有严格意义上的Class叭,Type只是像c里的construct,然后函数有Multiple : dispatch。 : : ★ 发自iPhone App: ChineseWeb 13
|
A*******e 发帖数: 2419 | 28 都是屠龙之技。哪个新语言都有一堆牛逼功能说事。
工程师就应该用最大众化的。轻量级快速开发可以考虑Python,其他就是Java/C++/C#
三选一。swift搞搞果子应用就行了。
class
楚,
的,
Julia
【在 p**z 的大作中提到】 : 是的,Julia的class叫做Type, 比较像C的struct,可以有constructor,abstract : class可以有inheritance(subtype)。但是,functions不属于class,code写在class : 外面,scope缺省是本module。用multiple dispatch来实现polymorphism。 : 我一开始也非常不习惯,但是这样的设计有一定道理。传统OOP在class里面有method, : 不同class有重名的method没关系,根据调用者object的类型调用各自的method,其实 : 是single-dispatch polymorphism。据我理解(如果有错请懂行的人纠正)在实现 : 时,其实就是把调用者的object作为第一个参数传进去的(在Python里这一点特别清楚, : 因为在class下的function第一个参数都是self)。multiple dispatch就是single : dispatch的generalization,到底调用哪一个版本的函数是所有参数的类型共同决定的, : 并不只限于第一个。这个听上去像静态类型语言的function overloading,但是Julia
|
n******7 发帖数: 12463 | 29 我明白你的意思了,很好的point
我倒是也希望有一种写的容易,跑的快,包还全的语言
所以之前了解过Julia,然后因为这个benchmark的问题很失望
他们是知道大家的这个疑问,但是故意不解释也不改进代码
起码他们应该给出一个不适合矢量化的例子,用来评估裸循环的速度
你说的这个问题我在R里面遇到很多
因为R里面循环的速度是超级超级的慢
一个说法是你的循环超过100次,你就应该想办法改进代码了
但是不是每个问题都适合或者很容易矢量化的
这也是我抛弃R的一个重要原因
Python比R的情况好,也有pypy,numba这样的JIT版本,还有Cython
搜了一下,
pypy似乎总体还是不如julia
http://stackoverflow.com/questions/10775510/julias-python-performance-example-in-pypy
但是Cython numba numpy这些工具还是挺给力的,8个benchmark6个比julia快,总体可
以算持平
https://www.ibm.com/developerworks/community/blogs/jfp/entry/Python_Meets_
Julia_Micro_Performance?lang=en
直接看summary就好
考虑到包支持,语言通用性,和信誉
我决定继续用python
【在 p**z 的大作中提到】 : Julia的benchmark在这件事情上没有解释清楚,所以被不少人诟病。 : 用过Python和R的都知道,能矢量化的一定要矢量化;矢量化以后,就不是Python : 或者R自己在执行算法了,底层算法其实都是调用下面的库,这些库一般是C/C++ : 或者Fortran写的,所以速度很快。对于常见的问题,流行的数值运算库也就那么几 : 个,大家用的都差不多。Julia也有包装好的这样的库,所以对矢量化的问题来说大 : 家都是一样的。 : 问题是我在实际工程应用中碰到很多情况不能矢量化。比方说计算一个非线性的传播 : 方程,需要把一段距离分成很多小段,每段的计算是依赖于前一段的结果的,而且这 : 个计算是非线性的,所以必须用循环一步一步算。 : 还有一些问题虽然能够矢量化,但是因为有各种特殊情况,如果矢量化的话需要很多
|
p**z 发帖数: 65 | 30 我相信Python配合Cython和Numba使用,应该可以解决不少循环速度问题。我除了读
tutorial没有怎么太用过它们;印象是它们比较适合纯数值运算(循环内数据是简单数
据类型)。
我在应用中未来需要处理的情况是,程序主体就是多层嵌套大量循环,里面除了数值计
算还需要用到不少自定义的数据结构,而且要尽量把可以并行运算的循环扔到不同的
processor上面去;有些内层循环的计算可能要使用GPU提速。我的理解这种情况不适用
于Cython和Numba,但是我也没有仔细研究过它们所以不是100%确定。
大部分人可能没有这样的需求,用Python完全可以满足应用。
Julia的确太年轻,package数量远不如Python(目前官方注册package数是1101,http://pkg.julialang.org/;Python官方注册package数是87882,https://pypi.python.org/pypi)。Julia package的数目是在稳步增长中(http://pkg.julialang.org/pulse.html),我觉得将来在科学计算领域Julia有希望成为数一数二的选择。
目前对Julia采用得比较多的领域是金融(包括对冲基金和美联储都在用),好像大数
据、机器学习、计算生物学也有应用,在工程领域好像没怎么听说,但是我觉得在循环
次数很多的仿真应用上应该很有希望啊。:)
【在 n******7 的大作中提到】 : 我明白你的意思了,很好的point : 我倒是也希望有一种写的容易,跑的快,包还全的语言 : 所以之前了解过Julia,然后因为这个benchmark的问题很失望 : 他们是知道大家的这个疑问,但是故意不解释也不改进代码 : 起码他们应该给出一个不适合矢量化的例子,用来评估裸循环的速度 : 你说的这个问题我在R里面遇到很多 : 因为R里面循环的速度是超级超级的慢 : 一个说法是你的循环超过100次,你就应该想办法改进代码了 : 但是不是每个问题都适合或者很容易矢量化的 : 这也是我抛弃R的一个重要原因
|
|
|
s*****e 发帖数: 115 | 31 这里这么写的问题在哪里? 是因为(j in 1:500)这里么?什么意思?
【在 n******7 的大作中提到】 : 又去看了一眼,他们的R benchmark code还是这么写的 : ## pi_sum ## : pisum = function() { : t = 0.0 : for (j in 1:500) { : t = 0.0 : for (k in 1:10000) { : t = t + 1.0/(k*k) : } : }
|
f******x 发帖数: 98 | 32 非常支持Julia,我也是最近从Python转到Julia,非常enjoy Julia programming。我
预期Julia会迅速成熟起来,成为科学计算和data science领域的黑马。
我个人的体会,Julia 比 Python的优势,除了运行速度和效率之外,还有一个巨大优
势是语言的表达更加精炼简洁。Python已经是表达能力很强的高级语言,但是同样的逻
辑,Julia的程序比相应的python程序更加精悍,这得益于Julia的multi-dispatch和强
Functional的默认模式。
Julia唯一让我抓狂的是她继承了Matlab和Fortran的1 based array index,但是在新
的Julia版本0.5会支持arbitrary based array index,期待中。 |
w*****g 发帖数: 16352 | 33 还是不习惯属性和方法分开放,不好组织。
★ 发自iPhone App: ChineseWeb 13
【在 f******x 的大作中提到】 : 非常支持Julia,我也是最近从Python转到Julia,非常enjoy Julia programming。我 : 预期Julia会迅速成熟起来,成为科学计算和data science领域的黑马。 : 我个人的体会,Julia 比 Python的优势,除了运行速度和效率之外,还有一个巨大优 : 势是语言的表达更加精炼简洁。Python已经是表达能力很强的高级语言,但是同样的逻 : 辑,Julia的程序比相应的python程序更加精悍,这得益于Julia的multi-dispatch和强 : Functional的默认模式。 : Julia唯一让我抓狂的是她继承了Matlab和Fortran的1 based array index,但是在新 : 的Julia版本0.5会支持arbitrary based array index,期待中。
|
g****t 发帖数: 31659 | 34 C 没那么容易学。仅就语法而言,
swift学起来和pyhton难度差不多。
Swift还不少functional什么的新特性。
组织的都不错。
另外c 归哪个大公司管?
没有大公司支持,后头很难的。
: 用swift还不如继续c
【在 A*******e 的大作中提到】 : 都是屠龙之技。哪个新语言都有一堆牛逼功能说事。 : 工程师就应该用最大众化的。轻量级快速开发可以考虑Python,其他就是Java/C++/C# : 三选一。swift搞搞果子应用就行了。 : : class : 楚, : 的, : Julia
|
c*********e 发帖数: 16335 | 35 难怪你是搞硬件的。想当年,学networking的,最后一年的课,是和学programming第
一年的一起学c,而且还不懂很多东西。
【在 g****t 的大作中提到】 : C 没那么容易学。仅就语法而言, : swift学起来和pyhton难度差不多。 : Swift还不少functional什么的新特性。 : 组织的都不错。 : 另外c 归哪个大公司管? : 没有大公司支持,后头很难的。 : : : 用swift还不如继续c :
|
n******7 发帖数: 12463 | 36 for (k in 1:10000) {
t = t + 1.0/(k*k)
}
R 里面不会这么写
k = 1/1:10000
sum(k*k)
快几十倍
【在 s*****e 的大作中提到】 : 这里这么写的问题在哪里? 是因为(j in 1:500)这里么?什么意思?
|
n******7 发帖数: 12463 | 37 Cython我也没实际用过
我一个同事用了几年了,他做图像处理
你的东西听着挺复杂的,我其实感觉python+C可能更好
我觉得新语言坑多,第三方工具的数量和质量都有限
适合小project,不适合大型工程
特别是高质量的包,没有一些年头的积累和大量user,很难做到的
不过你愿意折腾julia挺好的,人类需要你这种精神
我本来也是喜欢折腾,探索新玩法的人
不过年纪大了,还一事无成,只能务实一些了
【在 p**z 的大作中提到】 : 我相信Python配合Cython和Numba使用,应该可以解决不少循环速度问题。我除了读 : tutorial没有怎么太用过它们;印象是它们比较适合纯数值运算(循环内数据是简单数 : 据类型)。 : 我在应用中未来需要处理的情况是,程序主体就是多层嵌套大量循环,里面除了数值计 : 算还需要用到不少自定义的数据结构,而且要尽量把可以并行运算的循环扔到不同的 : processor上面去;有些内层循环的计算可能要使用GPU提速。我的理解这种情况不适用 : 于Cython和Numba,但是我也没有仔细研究过它们所以不是100%确定。 : 大部分人可能没有这样的需求,用Python完全可以满足应用。 : Julia的确太年轻,package数量远不如Python(目前官方注册package数是1101,http://pkg.julialang.org/;Python官方注册package数是87882,https://pypi.python.org/pypi)。Julia package的数目是在稳步增长中(http://pkg.julialang.org/pulse.html),我觉得将来在科学计算领域Julia有希望成为数一数二的选择。 : 目前对Julia采用得比较多的领域是金融(包括对冲基金和美联储都在用),好像大数
|
n******7 发帖数: 12463 | 38 这不算奇葩
奇葩的是
if (){
} else {
}
能work
if (){
}
else {
}
就不work
真是屎一样的语言啊
【在 w*****g 的大作中提到】 : 还是不习惯属性和方法分开放,不好组织。 : : ★ 发自iPhone App: ChineseWeb 13
|
w***g 发帖数: 5958 | 39 啥预言这么奇葩?
【在 n******7 的大作中提到】 : 这不算奇葩 : 奇葩的是 : if (){ : } else { : } : 能work : if (){ : } : else { : }
|
n******7 发帖数: 12463 | 40 R
我前几天刚遇到这个问题
然后发现10年来很多人问过
给的解释是R解释器读到
if () {
}
这个}的时候,并不知道下面还有没有,所以默认是没有的
你要用else 必须得跟}在一行
我不知道为啥我没早注意这个
可能以前知道,好久没用忘记了
【在 w***g 的大作中提到】 : 啥预言这么奇葩?
|
|
|
h*******u 发帖数: 15326 | 41 有免费软件可以打包成exe
【在 w*****g 的大作中提到】 : 她要编译给外行用,奈何! : : ★ 发自iPhone App: ChineseWeb 13
|