Python 在编程语言中是什么地位?为什么很多大学不教 Python?

Python 在编程语言中是什么地位?为什么很多大学不教 Python?,第1张

python的地位很高,目前是世界第5大编程语言。。但我觉得大学不教python,其实是正确的。
Python在诞生之初,只是用来在Linux上给Perl和shell做衔接用的“胶水”,而今天已经成为了主流的编程语言,能获得今天的地位,当然具备诸多优势。。。比如数学运算相关的各种库,爬虫,等等。。。但这都不是导致Python流行的最根本原因。
有没有比Python运算更强的语言?多得是
有没有比Python爬虫效率更高的语言?也不少
所以其实平日里随口道来的种种优势,并不是不可替代的。。这些优势,很多语言都具备。就比如perl,erlang,Julia等语言,其实用来做运算或爬虫比Python更强,但为什么这些语言却流行不起来?
说到底,Python成功的秘诀只有一条,其实就是在功能基本够用的前提下,比其他语言简单。而比Python简单的语言,功能又不够全面,比如Lua,Javascript,Ruby这些语言比Python更简单,但往往只适合一两个领域的工作,而无法面面俱到。
Python可以提供的这些功能,对于非专业程序员来讲,已经显得非常强大了。。但对于专业程序员来说,Python最大的作用,其实也只是用来“偷懒”而已。因为相比JAVA或C#这种工业级的编程语言来讲,Python除了入门简单之外,并无任何优势可言。而Python的动态语言特性、不利于维护等缺点,成为了限制它迈向深层开发的重大缺陷。
如果熟练掌握JAVA或C#中的任何一门,想利用闲暇之余学习一下Python,看几个案例便可以入门,几乎不需要专门学习。
如果你并不以成为专业程序员做为目标,那么以Python为主,是可以的。但若想靠编程养家糊口,静态语言才是重中之重。
但如果是计算机专业的话,仅仅学Python,似乎就有点对不起“科班出身”的称号了。。。。学生们花着昂贵的学费,消耗四年光阴,却只学个Python,岂不是误人子弟?
就像你若报考摄影专业,老师应该教你使用单反,而不是教你使用手机摄像头。

时代在发展,科技在进步,而对于互联网编程行业来说,出现新的编程语言也是非常正常的现象。而今天我们就给大家简单介绍一下,比起python编程语言来说更有优势的编程语言。

Julia中的数算

一般来说,Julia中的数算与其他脚本语言中的数算看起来是一样的。它们的数字都是“真正的数字”,比如Float64就是64位浮点数或者类似于C语言中的“double”。Vector{Float64}与C语言double数组的内存布局是一样的,都可以很容易地与C语言进行互 *** 作(实际上,在某种意义上,“Julia是构建在C语言之上的一个层”),从而带来更高的性能。

类型稳定性和代码内省

类型稳定性是指一个方法只能输出一种可能的类型。例如:(::Float64,::Float64)输出的类型是Float64。不管你给它提供什么参数,它都会返回一个Float64。这里使用了多重分派:“” *** 作符根据它看到的类型调用不同的方法。例如,当它看到浮点数时,就会返回浮点数。Julia提供了代码自省宏,可以看到代码被编译成什么东西。因此,Julia不只是一门普通的脚本语言,还是一门可以让你处理汇编的脚本语言!和其他很多语言一样,Julia被编译成LLVM(LLVM是一种可移植的汇编格式)。

多重分派允许一种语言将函数调用分派给类型稳定的函数。

这就是Julia的核心思想,现在让我们花点时间深入了解一下。如果函数内部具有类型稳定性(也就是说,函数内的任意函数调用也是类型稳定的),那么编译器就会知道每一步的变量类型,它就可以在编译函数时进行充分的优化,这样得到的代码基本上与C语言或Fortran相同。多重分派在这里可以起到作用,它意味着“”可以是一个类型稳定的函数:对于不同的输入,它有不同的含义。但是,如果编译器在调用“”之前能够知道a和b的类型,那么它就知道应该使用哪个“”方法,这样它就知道c=ab的输出类型是什么。这样它就可以将类型信息一路传下去,从而实现全面的优化。

Julia基准测试

Julia官网提供的基准测试只是针对编程语言组件的执行速度,并没有说是在测试快的实现,所以这里存在一个很大的误解。北京ja课程认为R语言程序员一边看着使用R语言实现的Fibonacci函数,一边说:“这是一段很糟糕的代码,不应该在R语言中使用递归,因为递归很慢”。但实际上,Fibonacci函数是用来测试递归的,而不是用来测试语言的执行速度的。

1如果已经将平台搭建好了的话,java,C#比较不错,毕竟可以快速开发出成果。这是上层应用软件开发,不涉及平台和驱动。
2嵌入式最流行的当然是C语言了。。。但是底层的引导代码还是要汇编来写
以ARM_LINUX嵌入式系统为例:顺序是(1)bootloader,bootloader又2部分组成,第一部分为系统初始化,是汇编写的,将软硬件带入一个合适的环境下后,跳转到C语言,那是第2个部分,接着就引导内核了。内核有一小部分代码是汇编,主要负责还是关于硬件的 *** 作,声明等
3软件开发和移动平台应用是一样的,因为已经有搞嵌入式的帮你把硬件驱动,开发环境等搞定了(我在这里统称负责接口的是搞嵌入式的+=+!赫赫,勿怪),只要你用函数库开发软件就行了,不用考虑在硬件层是怎么实现的,语言嘛:C/C++ java C# 还有很多
4自学的话,还是C语言,因为应用面广,如果做软件开发,可以切入C/C++,MFC(都是VC60)开发环境,学多了之后在多学几门,java,C#等,或者精通一种开发方法。如果不想做软件,想做嵌入式,C语言也必不可少,并且这几年物联网发展,嵌入式有很大发展空间了。

逃逸时间算法的程序没找到,给你个别的方法编出来的程序吧,作个借鉴
c=-04+05i;
[x,y]=meshgrid(linspace(-2,2,200));
z=x+yi;
N=zeros(size(x));
C=cones(size(x));
for k=1:50;
z=z^2+C;
N(abs(z)>2)=k;
C(abs(z)>2)=0;
z(abs(z)>2)=0;
end
imshow(N,[])

学习经济学需要熟悉哪些编程语言?
1)坛友arthur_2006
处理和分析数据都用得到,最基本的是excel,如果你的VBA用得好的话会有很大的帮助,如果你要分析数据的话,比如你要建模那么SAS还是不错的,不过比较难掌握如果你没有语言方面的基础,其他还有很多软件也能做得到。很多银行证券期货企业都使用的是oracle或者DB2,一些小企业可能使用的是SQL, 所以如果想在这方面发展就要掌握数据库的知识,毕竟金融和计算机兼备的人才还是稀缺的,而且国内很多行业都是用的是这几大数据库比如电信医疗航空等等,不会分析金融数据恐怕称不上什么金融专家吧,至于你分析得准还是不准那就要看你的金融知识掌握的程度啦,尤其是投资专业的学生学习一些这方面的知识是必要的,很多人是应用金融学专业的偏向于财务,那就去考考CFA,ACCA什么的,也没必要在这上面花费太多精力而且工作中很可能用不到的,金融数学金融工程精算专业的同学花点时间研究一下还是很有必要的,总而言之一句话,首先要看你的兴趣再就是你的专业和发展方向。
2)编程爱好者任坤
做统计和计量的话,想要跟当今的国际学术界接轨,最好学R,至少我所知道的目前美国的统计学术界被R占领的趋势很明显了。
如果只是做简单地回归随便解读一下,那随便选个傻瓜软件就可以了。如果只是应用现成的成熟的计量模型来做实证研究,那么傻瓜软件一般也就可以了。如果要以统计、计量为研究领域或者专业领域,那么编程性的东西是少不了的,即使是做实证如果涉及较为复杂的数据结构,懂编程也能帮你大幅提高生产力。另外,R的社区比较活跃,能够较好地跟上前沿。
如果涉及到处理较大的数据,一种办法是用SAS,如果不想用SAS可以学数据库方面的东西,比如把数据放在SQLite数据库中然后用{RSQLite}访问数据库,或者用{sqldf}通过SQL *** 作环境中的data frame。
如果觉得执行某项任务R单核速度慢,那么可以使用{parallel}或者{parallelMap}做并行计算,也可以利用云计算来处理数据。
如果涉及到其他社区的东西在R社区中没有实现,例如Java的东西,可以用{rJava}来调用Java的对象,不过速度有些慢。
比较好的办法是我在想从事数据分析工作,学什么软件或语言最好? 提到的F#函数式编程语言,用RProvider可以直接调用R,用JavaProvider直接调用Jar打包的Java程序,用PythonProvider(即将发布)直接调用Python程序,等等,很容易将各大社区的资源整合在一起使用。
目前我在GitHub上面弄一个通过R学习统计、计量、非参、数据可视化、数据库的repo: renkun-ken/learnR on GitHub ,虽然目前还没什么内容,不过可以跟踪一下。
以上说得都是经济学相关的统计和计量方面所需要的编程。事实上统计和计量所需的「编程」较为简单,基本也就是处理数据、应用已经提供的计量模型,更多需要编程的是:一、如果涉及较为前沿的计量模型,可能还需要自己实现;二、一些蒙特卡罗模拟需要一些编程。
从经济学相关的一些新型领域来说,计算经济学(Computational Economics)、计算统计学(Computational Statistics)以及计算计量学(Computational Econometrics)则需要较强的编程能力,包括算法实现、算法分析等等。举个例子,计算经济学中目前做的一块研究是Agent-based computational finance,就是建立一个模拟的金融市场,里面有几种资产,每种资产的基本面由随机的红利决定,里面有许多遵循各种逻辑的投资者,投资者对于红利发放持有的信念不同,因而从各自的逻辑触发的交易行为不同。在一个复式竞价(double auction)的交易市场中,什么样的投资者组成或者行为方式、什么样的记忆长短,能够最大程度地复制出我们在现实金融市场中观测到的资产价格或者资产收益率规律,例如资产收益率尖峰肥尾、不对称性。此时,研究者就需要较扎实的金融知识来设计一个不过于简单而又不过于复杂的模拟金融市场,也需要相应的编程能力把模型用程序语言编写出来。这中间会设计许多编程技术,例如数据库(有时要跟踪许多变量,例如投资者现金流动、财富分布)、并行计算(CPU多核并行、多进程并行、集群上的并行甚至GPU计算)等等。这方面的研究从1990s年代才开始。
3)知乎网友Jichun Si
计量经济学也有很多小的门类,请对号入座。有很多软件,Stata, matlab, R, SAS是相对来说用的比较多的。
如果是做应用计量(特别是横截面数据、面板数据),Stata是不二之选,因为不管是管理数据还是跑回归,实在太太太方便了。现在主流期刊的应用微观计量文章里面能用到的模型stata几乎都有,而且其中的绝大多数都是用stata做的。而且最大的优点是,简单!
如果做应用的时间序列,Eviews似乎是一个不错的选择。但是我一般不做这方面,也不是很有发言权。
如果做理论计量,stata eviews是没有现成的包的,而且即便Stata可以编程,可编程能力也是很差的,而且不稳健。所以懂R和Matlab就非常顺手。当然也可以用Python,最近Sargent就写了本用Python做计量的书。还有一个Julia,是这三种语言的混合,但是速度快很多,缺点是太过于小众。
如果对速度要求高,特别是金融计量很多对速度有要求的,可以考虑C、Fortran等语言。C和Fortran肯定是最快的。还有一个叫做OX的,速度快,但是也很小众。但是这些语言的缺点是学习难度比较高,开发时间比较慢。Julia据说速度堪比C,而且语法特别像Matlab、Python(意味着容易学习),但是处于刚起步阶段,用的人太少了。
如果是金融计量领域,强烈建议学会SAS。SAS是最权威,速度也很快,当然最大的问题是昂贵,而且可编程能力不是多么好。但是金融里面数据量都非常非常非常大,一般的软件都瘫的时候,SAS就派上用场了。
像我自己,做应用的时候都是用stata整理数据,能用stata的坚决不用其他软件。但是因为有的时候做一些理论计量的工作,所以matlab也是必不可少的。我也在学习Julia,因为matlab的速度实在太慢。Python我一般不用来做科学计算,用的人不多,而且速度慢,一般是用来抓数据的。
最后还是补充一点吧,为什么我推荐matlab而不是其他的软件,也是有道理的。很多模型,比如空间计量模型(spatial econometrics)、贝叶斯估计、以及宏观计量里面的DSGE model、SVAR等模型,在stata、Eviews里面都是没有什么现成的东西可以用的,但是matlab提供了丰富的包,比如Dynare就是基于Matlab的,还有LeSage的空间计量软件包等等,也是基于matlab的。所以几乎你想用的模型matlab里面都能找到codes然后直接用。就算没有,你自己在matlab里面写,也不是什么难事。
最后想起一句话来,关于这些软件的选择(stata除外,因为stata在应用计量领域的地位是几乎不可替代的)可以用两句话来概括:如果你自己的时间比计算机的时间宝贵的话,学习matlab、R、甚至Python、Julia是最合适的,如果计算机的时间比你的时间宝贵的话,学习C、Fortran是必须的。当然除非你的工作非常特殊(比如一些大型的结构模型的估计),一般来说,还是自己的时间更宝贵一点。
综上,做应用和做理论是不可能用一种软件解决的,建议根据自己的方向进行挑选。我觉着stata、matlab是比较推荐的,一个方便,一个灵活,都很强大,而且学习难度都不大,用的人都很多,交流起来相当方便。
4)网友张真实
数据,简单的用excel,直观,方便。复杂一些的…excel最多可以有6万多行,你确定你需要从那么大量的数据开始“学经济学么?
复杂的用R,各种模型,算法,实现,基本上R都有对应的软件包了,下载下来直接用即可,多读文档多练多用,半年左右就可以抛开excel直接用R作实战了。我博士论文全部回归和输出都是用R的,现在写的论文也都用它。替代品是Stata。也很好,但如果你和我一样是从0开始,那么强烈建议选R。
R的一个不足是没法作符号运算,这个免费的解决方案有python搭配scipy numpy等几个包,不过建议你用mathematica,它的符号计算功能最强大,输出格式也最好。你可以找个jacobian矩阵搞一下符号计算,比较一下结果就知道了。
Python这东西,熟悉了R之后,发现有功能是R实现不了的,到时候有实际需求了,再学也不迟。不是立刻就需要的。
此外,所有经济学研究(我是指empirics类型的,具体意思你懂的),都要会用latex,可以把它看做是一门编程语言。在word里排数学公式,用不了多久你就会疯掉。R中可以用ggplot2来绘图,输出到tex中。普通数据表用xtable包输出到tex,回归结果用stargazer输出到tex,都很方便。
5)网友bayes
首先要说的是R,绝对是目前国外学术界的主流,统计系基本除R以外没有其他了,计量作为和统计相关的方向,R也在逐渐渗透。所以推荐学习。
顺便说一句,R的学习曲线是比较陡峭的,所以我不太建议零基础的人从R开始,否则挫折感会比较强烈。而python会略好,所以我建议从python开始。
python并非是专用于统计或者计量的软件,而是一种非常流行的通用编程语言。经过多年发展,库也非常齐备。我试用过numpy,scipy和pandas等库,与其他通用编程语言相比,算是相当好用,不过个人感觉还是比不上R,比如画图,
ggplot2真心是神一般的存在,python的库还是略逊一筹。但是,除了数据处理之外,python可以干的事情太多了,也太牛了。我们主要要用到的,比如网页采集数据,需要正则表达式,解析网页等等。这些方面python就比R有优势多了。
当然,从趋势来看,未来似乎python比R更优。R是一群统计学家在编程序,python是一群计算机专家在争取搞数据处理。似乎python的基础更扎实。个人观点,仅供参考。
stata我认为是除了R以外最好的计量软件了,我两者均用过数年数个项目,但是依然感觉R更好用,整理和处理数据更方便。所以即使在楼上诸位所提到的微观计量领域,我依然更喜欢R。
除此以外spss,或者eviews等,感觉管理类学生用的更多,功能比较受限,不太推荐。这里不赘述。上述的几个软件,还有个问题,在于都是收费的,考虑到未来知识产权的保护,还是用免费的略靠谱。
R的主要缺点有两个:
1,面对大数据乏力。这方面sas确实有优势,但是不得不说,sas的语法太反人类了,完全接受不能。面对这个问题,我要说的是,你得看问题有多大。以我的经验,经济里面的数据量似乎还不足以超过R的处理上限很多。可能金融的高频数据会比较大,我个人没啥经验,如果遇到再补充。我尝试过10g的数据,最简单的办法,不是学sas,而是买16g的内存。:)以现在的内存价格,我觉得32g以下的问题不大。
2,性能不足。这方面python也有同样的问题,最好的解决方案是混合c/c++,不过这个就是无底洞了,耗时极多,都不见得能学好。建议的方法,还是买硬件,这个最简单。:)当然用并行包等,也是解决方法之一,我尝试过几次用机房的多台机器做集群,不是太成功。求高人指点。
上面诸位还提到过几个软件,我也略微说一下自己知道的一些软件的看法:
matlab:好东西,关键还是性能问题,同样可以靠c/c++来解决。但是我不喜欢比较大的软件,为了求个均值方差,等它启动就占了5分钟。。。
julia:好东西X2,目前关注中,可能还比较年轻,导致配套的库略少,不过看好未来发展,主要是吸取了matlab,python和c/c++的有点,写的快,运算的也快,未来看涨,紧密关注。
最后提一下函数式编程,是个好东西,但是不看好纯粹函数式编程的未来。它体现了一种颇先进的编程思想,但是在实际工作中,往往性能方面的问题较大。要解决这个问题,还是的混合函数式编程和其他方式,但这就是python,R等软件已经实现的方式,似乎又没有必要专门去学其他的函数式编程了。
6)上海财经大学博士 荣健欣
Stata微观计量中应用极多,主要是直接输命令回归,需要编程的地方不多。
至于编程,推荐R、Python
R是非常好的统计分析软件,在计量经济学中的应用可以见Econometrics in R, Applied Econometrics with R Time Series Analysis with Applications in R这几本书
Python用来抓数据很好,并且有数学计算包SciPy可以部分替代Matlab之类科学计算的功能。
7)知乎网友justin
本科经济统计学,由于学校奇葩的课程设置,我们分别使用过:
EViews:计量经济学,时序和多元统计。
Stata:计量经济学。
SPSS:专门开的一门课,这个巨汗,权当复习了一遍统计学。
Excel:大一的统计入门课使用的,这个也巨坑,就是简单的函数使用,一点没有涉及VBA。
Matlab:这个没有专门的课,是上完了C语言程序设计以后副产品,后来接触了R和Mathematica就基本抛弃了它。
R/S-Plus:在回归分析的时候使用了S-Plus,不过那时候我已经使用R语言很久了,而且S-Plus基本兼容,所以没有使用过S-Plus。
Minitab:质量控制课程上用的,基本的统计加上一些实验设计。
SAS:这个在实验室中自学过几次,直接被其奇葩的语法雷到了,据说我们学校的研究生有专门的SAS课程(类似于本科的SPSS课程),呵呵了~
我们系的妹(xue)纸(ba)就曾经抱怨说使用的软件太多了,完全被逼疯的感觉,还给我们亲爱的系主任提过意见。作为学渣也就这个问题问过系主任,她的意思是不同的软件在处理不同的数据时候是各有所长的,而且你们课程还是蛮轻松的,就多学点吧,另外不同的老师有不同的软件使用爱好,上课使用不同的软件是必然的。
学习经济学的同学,Excel和SPSS,EViews(或者Stata)就蛮好的了,Stata和EViews都可以写一些程序的,SPSS的界面化 *** 作也是很友好的。本人使用的R,在上各种课中也都会在学了那些软件后再使用R来实现(其实绝大多数时候R都已经有现成的包了,我也大多是直接使用),R还是很不错的,推荐。
很多前辈也提出了,经济学学生学习编程适可而止就好了,要不然就是一条不归路啊,面临着彻底转行的危险,本人就是一枚反面例子(泪~。所以什么Python啊,C++啊,Julia啊就不要接触了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/13184598.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-17
下一篇 2023-06-17

发表评论

登录后才能评论

评论列表(0条)

保存