由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 有什么比较适合engineer用的语言吗?
相关主题
cyphon,cpython,numba,julia,pypy,为什么都不是主流python太慢了
这里有用Julia 的吗?can python replace matlab ?
Python vs J2EE教小孩C++?
什么FP能替代pythonjava是最好的语言
学python要学到什么程度才算professional?没觉得Java比Python和Perl有啥优点
[bssd]汇报一下Julia进展wdong, 要不要换Julia?
大家用python 调用C++是如何搞的忙起来了
和数值计算或算法相关的是不是还是C比较好什么语言简练如python运行速度如C++
相关话题的讨论汇总
话题: python话题: julia话题: 矢量化话题: 语言话题: 循环
进入Programming版参与讨论
1 (共1页)
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

相关主题
[bssd]汇报一下Julia进展python太慢了
大家用python 调用C++是如何搞的can python replace matlab ?
和数值计算或算法相关的是不是还是C比较好教小孩C++?
进入Programming版参与讨论
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

相关主题
java是最好的语言忙起来了
没觉得Java比Python和Perl有啥优点什么语言简练如python运行速度如C++
wdong, 要不要换Julia?python比java慢这么多呀
进入Programming版参与讨论
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的一个重要原因

相关主题
哪有关于python调用c的tutorial啊这里有用Julia 的吗?
为啥大家都比较python的web framework呢Python vs J2EE
cyphon,cpython,numba,julia,pypy,为什么都不是主流什么FP能替代python
进入Programming版参与讨论
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 的大作中提到】
: 啥预言这么奇葩?
相关主题
什么FP能替代python大家用python 调用C++是如何搞的
学python要学到什么程度才算professional?和数值计算或算法相关的是不是还是C比较好
[bssd]汇报一下Julia进展python太慢了
进入Programming版参与讨论
h*******u
发帖数: 15326
41
有免费软件可以打包成exe

【在 w*****g 的大作中提到】
: 她要编译给外行用,奈何!
:
: ★ 发自iPhone App: ChineseWeb 13

1 (共1页)
进入Programming版参与讨论
相关主题
什么语言简练如python运行速度如C++学python要学到什么程度才算professional?
python比java慢这么多呀[bssd]汇报一下Julia进展
哪有关于python调用c的tutorial啊大家用python 调用C++是如何搞的
为啥大家都比较python的web framework呢和数值计算或算法相关的是不是还是C比较好
cyphon,cpython,numba,julia,pypy,为什么都不是主流python太慢了
这里有用Julia 的吗?can python replace matlab ?
Python vs J2EE教小孩C++?
什么FP能替代pythonjava是最好的语言
相关话题的讨论汇总
话题: python话题: julia话题: 矢量化话题: 语言话题: 循环