• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于python:科学计算编程涉及到的技术栈简介

python 搞代码 4年前 (2022-02-20) 8次浏览 已收录 0个评论

引言

上半年本人在弄毕业设计时负责的是一个与Python数据分析相干的课题,最终获得了个不错的问题,感觉其中的技术计划选型局部很有分享进去的价值,对在科学计算(当初风行的说法是数据迷信)方面还是只知其一;不知其二的人起到一个入门科普的作用,故撰写此文。


2.1.1 科学计算编程语言的比拟

MATLAB语言介绍:

Matlab是MathWorks公司开发的科学计算软件,软件模式为本体加扩大工具箱。它具备弱小的矩阵计算和数据可视化能力,一方面能够实现数值剖析、优化、统计偏微分方程数值求解、自动控制、信号处理等多个畛域的数学计算,另一方面能够实现二维、三维绘图、三维场景生成和渲染、科学计算可视化、图像处理、虚拟现实与地图制作等性能[13]。不过,值得注意的是MATLAB是商业性软件,软件售价不菲,而且就软件社区生态来看,目前在数据迷信畛域越来越不受待见。以“MATLAB Machine Learning”和“python machine learning”作为关键词在谷歌剖析中比拟[14],如图2.1所示,会发现MATLAB的数据迷信社区活跃度远不迭Python数据迷信社区。从拥抱沉闷的数据迷信社区从而不便本人遇到问题时能够寻求解决方案的角度思考,应用Python显然更有利于课题的后续钻研倒退。

图2.1“MATLAB Machine Learning”和“python machine learning”谷歌剖析后果比拟

R语言介绍:

与MATLAB类似,R语言用于数据处理和统计分析,为大多数统计学家所钟爱。R语言脱胎于AT&T实验室开发的统计语言S语言,且与s语言根本兼容[15]。R语言是开源收费的,由一个宏大沉闷的全球性研究型社区保护,深受泛滥统计学家的欢送。

Julia语言介绍:

Julia是专门为高性能数值计算而设计的高级动静程序设计语言,它在分布式并行化、准确数值计算等方面提供了独特的反对,并蕴含了大量可扩大的数学函数库。特地是在线性代数、随机数生成、信号处理和字符串解决等畛域,Julia集成了许多成熟的、优良的基于C和FORTRAN的开源库,具备很高的性能和效率[16]。不过,Julia面世于2012年,目前还处于蓬勃发展之中,只管前景可观,但目前在科学计算畛域的遍及度还远不如Python。

Python语言介绍:

Python语言诞生于1989年,创始人为Guido Van Rossum。其为一种弱类型的高级动静语言。目前最新版本为3.9。Python开源收费,有着非常沉闷的科学计算社区生态,社区活跃度远超R语言社区。由Tiobe公司公布的编程语言排行榜显示,Python排行地位已跃居第三位,而R语言处于第九位,如图2.2。不同于MATLAB、R和Julia等专一于科学计算畛域,Python在Web利用开发畛域也备受追捧。基于Python编写的Django、Flask等web框架在软件开发畛域失去了大规模的利用。从易于将本课题的研究成果最终转化为特定的数据分析解决方案的角度登程,抉择Python作为本课题的编程语言显然较其余几种语言更有劣势。统一的语言个性,能够显著缩小将来成绩转化时的学习老本,所以本课题选用Python3.8.2作为统计模型构建剖析的编程语言。

图2.2 Tiobe编程语言排行榜历史数据

2.1.2 开发平台的比拟

PyCharm[17]介绍:

Pycharm是由JetBrains打造的Python集成开发环境,具备调试、语法高亮、项目管理、代码跳转、智能提醒、主动补全、单元测试、版本控制等弱小性能。PyCharm分为社区开源版和专业版,其中专业版提供了反对Django、Flask等框架的Web开发、数据库连贯等性能。

Visual Studio Code[18]介绍:

Visual Studio Code是由微软公司推出的一款轻量级编辑器,其软件架构为平台加插件模式。加载Python插件后,Visual Studio Code能够视为一款非常杰出的小型Python IDE,但性能齐备性方面相较PyCharm还有不少间隔。不过,鉴于其齐全开源收费的个性,拥簇者甚众,社区参与度非常沉闷。

Spyder[19]介绍:

一款面向Python语言的开源科学计算IDE(Integrated Development Environment),其设计思维相似于MATLAB,模拟了MATLAB的“工作空间”性能,不便察看和批改数组值。 其集成了Numpy、SciPy、Matplotlib等科学计算软件包,内置交互式环境以解决数据,对于数据科学家来说非常敌对,且被Python的科学计算发行版Anaconda所收录。我的项目指标是促成Python在迷信和工程畛域的软件开发的应用。

Jupyter Notebook介绍:

一个基于Web的交互式计算环境,用于创立Jupyter Notebook文档。不同于Spyder的整个Python文件运行后生成交互页面式的交互格调,Jupyter Notebook的交互是基于Python代码块进行的,这意味着用户能够按照本人的志愿有选择性地运行某些代码块并得出后果,相较于Spyder具备更弱小的灵活性。和Spyder一样,Jupyter Notebook也被Python的科学计算发行版Anaconda所收录。

2.1.3 数据库技术的比拟

MySQL[20]数据库介绍:

一款高性能、低成本、可靠性好且非常风行的开源数据库,有着二十多年的历史,是目前最好的关系型数据库管理系统之一,广泛应用在互联网上的中小型网站上。随着MySQL的一直成熟,它也逐步被用于更多大规模的网站和利用。MySQL目前归于Oracle旗下,其数据库查询语言为SQL。

MongoDB[21]数据库介绍:

一种面向文档的数据库管理系统,被定义为非关系型数据库,致力于为Web利用提供可扩大的高性能数据存储解决方案。与MYSQL中的表不同,它反对的查问文档的数据结构十分涣散,为相似于JSON的BSON格局,因而能够存储更为简单的数据类型。MongoDB的特点是弱小的查询语言。它的语法遵循面向对象的思维,能够实现相似关系数据库中单表查问的大部分性能,也能够对数据进行索引。

序幕

以上内容波及到的技术栈仅仅针对数据集大小为中小规模时的状况,对于大规模或者超大规模的数据集,则须要额定借助一些大数据方面的技术栈,如Apache Hadoop、Apache Hive和Apache Spark等,还请具体情况具体分析。

参考文献

[5] MATLAB[EB/OL]. https://www.mathworks.com/products/matlab.html, 2020.05.11.

[6] R[EB/OL]. https://www.r-project.org/about.html, 2020.05.11.

[7] Julia[EB/OL]. https://julialang.org/, 2020.05.11.

[10] Anaconda[EB/OL]. https://www.anaconda.com/, 2020.05.11.

[11] Jupyter Notebook[EB/OL]. https://jupyter.org/, 2020.05.11.

[12] Christian Hill. Learning Scientific Programming with Python[M]. Cambridge University Press, 2015:160-317.

[13] (美)Holly Moore. MATLAB实用教程(第二版)[M]. 高会生, 对童娜, 李聪聪等译. 北京: 电子工业出版社, 2010:1-2.

[14] 王树义. 学Python,能晋升你的竞争力吗?[EB/OL]. https://www.gaodaima.com/p/4445fe0a7e16, 2020.05.11.

[15] (美)麦特洛夫(Matloff, N.). R语言编程艺术[M]. 陈堰平, 邱怡轩, 潘岚锋等译, 北京: 机械工业出版社, 2013.6:1-2.

[16] 魏坤编著. Julia语言程序设计[M]. 北京: 机械工业出版社, 2018.10:1-2.

[17] PyCharm[EB/OL]. https://www.jetbrains.com/pycharm/, 2020.05.11.

[18] Visual Studio Code[EB/OL]. https://code.visualstudio.com/, 2020.05.11.

[19] Spyder[EB/OL]. https://www.spyder-ide.org/, 2020.05.11.

[20] MySQL[EB/OL]. https://www.mysql.com, 2020.05.11.

[21] MongoDB[EB/OL]. https://www.mongodb.com/, 2020.05.11.

(学识肤浅,仅仅介绍, 抛砖引玉,如有讹误,欢送指出~)


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于python:科学计算编程涉及到的技术栈简介

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址