导航:首页 > 编程语言 > python做科学家

python做科学家

发布时间:2023-04-04 05:46:38

‘壹’ 为什么越来越多的科学家使用python,Ruby而非Fortran

需要强调的一点是, 语言只是工具, 在特定应用场景下满足特定需要的工具,
脱离应用场景来谈不但没有意义而且还会扣友善度。以下经验(吐槽)都是针对大规模科学计算的, 个人电脑写一个下午的代码,然后跑十分钟的代码趁早去用
Python/R/Matlab/Ruby, 上手容易, 功能强大, 网上资源丰富, 绝对是您无悔的选择。

大家的难用都是从
fortran77那里感受来的,看过80年代的Fortran77代码,混乱程度简直爆表。再看2000年左右的Fortran95代码,马马虎虎,
算是中规中矩的结构化语言。最近看过2010年左右的Fortran2003 code(Fortran的lua接口)
。抽象类,构造函数满天飞,我擦好多feature都不知道。

所以你们批判的不是Fortran, 而是任性的,非结构化的coding
style。这不过恰巧搞科学的这票人都不太鸟coding standard和coding style,
所以Fortran写出来的代码大都比较乱, 这是使用者自身需要学习一个, 跟语言本身关系不大吧。见过师弟师妹们写的C代码,
比Fortran版本的还魔幻。

而C和C++里面也有goto, 也有extern可以不做函数参数参数检查,倒是没见你们怎么喷。Fortran里面也有interface来声明函数原型, 倒也没见你们怎么用。


如elemental, pure, 函数重载, forall, where,
Fortran95新加的功能一大部分是为并行度设计的,其语法也非常偏向高维的大数组操作, 自动并行化(openmp
workshare)用起来简直比C++爽不知道多少倍。在OpenMP+MPI的场合加上千核量级的并行度,还是有优势的。还有一种东西叫CAF,
CoArray Fortran, 专门针对大并行度的超级计算机添加了很多新语法,估计知道的人不多。

更不要说Fortran2003/2008支持面向对象。当然在虚函数方面好像比C++缺了一个功能, 其他都是完整复刻的。


以真要批判, 请先看看Fortran95/2003/2008在来批判, 哪怕只看目录或者Feature
List也好。真正值得喷的是Fortran95里面的mole的mod file的依赖问题, 写Makefile很麻烦,
还有就是输入输出功能太弱, 必须要靠lua,hdf5,netcdf, json这些第三方工具来支撑。

至少说,只要不用implicit,Fortran编译的时候可以精确地告诉你哪一行有问题。(对,我就是说给C++党的, 最近做习题被虐的不要不要的)


果要用心做好一个代码, 并行度在几千CPU核心的量级上, 有核心维护团队, 用户在百人千人量级上的话,正确的姿势是,
Fortran负责运算密集部分, C++/C负责常用逻辑和接口,
python/ruby/lua负责做胶水,负责暴露给不太关心细节的终端用户。这套东西199几年就有人在做,
结果到现在大家还在吵哪一个更好的问题。

-----2016-02-07 补充-------
获悉Fortran2008里面终
于对变量声明坑进行了修补, 在2008之前的版本中, 变量只能在函数的开始部分声明, 实际的声明语句可能距离使用语句较远,
同时可能引发临时变量误修改的情况, Fortran2008内加入了BLOCK结构, 可以当地生成临时变量,
并显式指明生存期,即使在BLOCK内部使用goto强行跳出, 编译器也会释放临时变量,即
mole m
implicit none

contains
subroutine test1(a, b)

integer,intent(in) :: a
integer, intent(out) :: b

....(执行语句)

TMP1 : BLOCK
integer :: temp_var
temp_var = a*b
a = temp_var
END BLOCK TMP1

....(执行语句)

end subroutine test1
end mole m

‘贰’ Python作为一门编程语言,学完了python能做什么工作

Python是一种高级编程语言,因为有很多包,你可以快速开始,很多公司都在使用。在学习Python之后,可能适合的职业主要集中在以下几个方面:

产品管理器通常需要准备PPT报告各种数据,并且Python数据分析师也可以使用Python很多工作。如今,数据分析师基本上没有说Python,因为Python内部数据分析太多,熊猫,Numpy,Scikit学习,Matplotlib,Tensorflow .许多数据科学家也在使用Python,所以如果数据分析,那么有兴趣学习,还可以考虑网络的方向探索Python培训。这也很明显。现在对Python的需求如此之高,很多人已经开始学习Python,总是被教导,教育培训也是一个持久的行业。至少有一些编程基础在Python之后,然后学习一些新兴语言,触摸旁路,并正确做训练。财务顾问现在处于数字转型,金融方向本身是一堆数据。这是大量数据。它是很多手工工作,付款和责任,现在,自动化得到改善,对于财务人员的要求也很高,如果你可以在这些数据的基础上进行一些分析,它也是非常繁荣的做一个好主意,它非常受欢迎。

‘叁’ 为何Python是数据科学家的最佳选择

数据科学工作需要用到数学和统计科学的知识,因此选择数据科学语言时要考
虑其对数值处理、统计分析、矩阵运算等的良好支持。Python中提供了第三方包NumPy和
SciPy,它们很好地提供了这些功能。其次,从事数册早据科学工作还需要整合各种数据源、
开发数据应用。这些需要语言能支持各种数据库的连接、不同数据格式文件读取、与企业
当前的应用整合以及外部数据爬取等功能。Python作为一门高级面向对象编程语言可以完
美完成上述工作。最后,数据科学家还需要结合领域知识完成数据分析、机器学习,最终
形成报告。而利用基于Python的Jupyter Notebook,数据科学家可以进行可重复的数据分
析,快速与团队分享,编写分析报告,同时基于Python第三方软件包Scikit-learn、
Tensorflow、Pytorch和Keras,既可以完成传统的机器学习应用开发,又可以完成最前沿
的深度学习桥首应用开发。数据科学工作需要用到数学和统计科学的知识,因此选择数据科学语言时要考
虑其对数值处理、统计分析、矩阵运算等的良好支持。Python中提供了第三方包NumPy和
SciPy,它们很好地提供了这些功能。其次,从事州消雀数据科学工作还需要整合各种数据源、
开发数据应用。这些需要语言能支持各种数据库的连接、不同数据格式文件读取、与企业
当前的应用整合以及外部数据爬取等功能。Python作为一门高级面向对象编程语言可以完
美完成上述工作。最后,数据科学家还需要结合领域知识完成数据分析、机器学习,最终
形成报告。而利用基于Python的Jupyter Notebook,数据科学家可以进行可重复的数据分
析,快速与团队分享,编写分析报告,同时基于Python第三方软件包Scikit-learn、
Tensorflow、Pytorch和Keras,既可以完成传统的机器学习应用开发,又可以完成最前沿
的深度学习应用开发。

‘肆’ 为什么越来越多的科学家使用Python,Ruby而非Fortran

Fortran语言作为一种上古语言,其实被淘汰也不为过,单就编程语言来讲,估计要被很多语言吊打。
但是啊但是,你看,搞科学研究的,不是每个人都可以做吧?很多科学家并不是特别地偏爱Fortran,只是在很多研究领域,早于计算机的逗伍发明,对科学家而言,很多时候计算是一个很大的瓶颈。
刚好计算机出来宴指冲之后,Fortran整出来,科学家们十分高兴地找到了能代替他们完成计算的编程语言,然后就一发不可收拾了,慢慢地就积累了一批优秀的代码(以及更多你看不到的稀烂的代码),等老板带徒弟搞研究,一来已经有很多大量的Fortran代码可以用,二来你自己搞个其他语言写的代码,老板表示看不懂可如何是好。所以自然地继承下来(并顺便发扬光大了)。
如果Python和Fortran处在同样的历史机遇下,我估计现在很多人都不知道有这么个语言了。
和Fortran语言境遇类似的还有一个叫做COBOL,据说现在还晌歼有代码运行在商业应用上。

阅读全文

与python做科学家相关的资料

热点内容
php论坛实训报告 浏览:403
java日期字符串转换成日期 浏览:135
linuxsftp连接 浏览:934
光伏日发电量算法 浏览:125
小肚皮app怎么才有vip 浏览:616
php全角转换半角 浏览:927
java字符序列 浏览:539
杭州编译分布式存储区块链 浏览:575
材料压缩曲线 浏览:247
linux命令排序 浏览:151
手机热点加密为啥连接不上电脑 浏览:979
编译器合并计算 浏览:959
android音频曲线 浏览:343
linuxftp自动登录 浏览:802
运行编译后网页 浏览:70
阅读app怎么使用 浏览:319
centos防火墙命令 浏览:432
命令行变更 浏览:332
linux设备和驱动 浏览:207
加密货币骗局破案 浏览:345