当前位置: 首页 > 后端技术 > Python

Python的科学计算生态

时间:2023-03-25 19:47:11 Python

科学计算的奠基石:Python第1章Python的科学计算生态1.1为什么选择Python?1.1.1科研人员需求获取数据(模拟、验证对照)操作、处理数据易于反映问题结果可视化和适合发表的高质量图形1.1.2Python的优势丰富的基本数据处理方法、图形和数据处理工具,无需重新发明轮子易于掌握:大多数科学家并不以编程为职业,也没有接受过特殊培训,他们需要的是快速组合、流畅的信号、快速的傅里叶变换处理能力易于交流:让代码可以在不改变的情况下改变存在于实验室、公司环境之间。代码要像合作者一样通俗易懂,学生套客户的畅销书。Python的语法简单,很少有奇怪的符号或冗长的规则,让读者在不了解代码内部机制的情况下,也能用数学和科学思维理解高效的代码:Python数据模块计算非常高效,无需专业编码能力,Python的目标是更少的开发时间和更少的执行时间通用:Python是一种可以解决多个领域问题的语言。学习Python不需要针对某一类问题去学习具体的处理方法1.1.3Python与其他编程语言的比较编译型语言:C、C++、Fortran……优点:快。对于繁重的计算,这些语言表现最好缺点:使用起来很痛苦。非交互式开发,必要的编译步骤,复杂的语法,手动内存管理。非程序员的困难语言。Matlab脚本语言:优点:各领域都有丰富的科学计算库。用编译语言编写的类库使其执行速度非常快,编程环境舒适:贴心、集成的编辑器等。提供商业支持。局限性:基本语言技能低,无法满足高级用户。收费。Julia的优点:编码速度快,交互性强,简洁,易于调用Python或C约束:生态局限科学计算不成熟其他脚本语言:Scilab、Octave、R、IDL等。优点:开源免费,至少比matlab便宜一些软件很精致,在一个领域,可以写出可读性强、结构良好的代码:“编码我们的想法”局限:算法比matlab少,编程语言不行开创和发展只适用于部分领域的Python优势:非常丰富的科学计算库语法符合思维逻辑,可以写出结构良好、可读性强的代码:“codewhatwethink”除了科学计算,其他库也一样丰富(web服务器,序列化端口访问等)免费开源,广泛使用,动态开发社区各种开发环境:IPython,Spyder,Jupyternotebook,Pycharm,VisualStudioCode限制:没有独特的算法,针对那些特定的软件或工具箱1.2Python的科学计算生态系统与Matlab和R不同,Python没有预先捆绑一系列科学计算模块莱斯。下面介绍能够辅助构建科学计算环境的基础模块:Python,一门通用的现代计算语言语言本身:流程控制、数据类型、数据收集等基础库和模块:字符串处理、文件管理,简单的网络协议大量专用模块和软件:网络框架等,以及科学计算开发工具(自动化测试,文档生成)更多数据处理库Numpy:强大的数据计算数组对象,和标准化操作。http://www.numpy.orgScipy:高级数据规范。优化、回归、插值等Matplotlib:2-D可视化、易于发布的组合高级交互环境IPython:高级Python命令行控制台Jupyter:浏览器中的笔记本领域特定包Mayavi:3-D可视化pandas、statsmodels,seaborn:统计sympy:符号计算scikit-image:图像处理scikit-learn:机器学习还有很多在本文档开始之前没有记录1.3:安装工作环境Python有很多发行版,安装方式也有很多种它。我们更喜欢安装一个科学计算发行版,它有许多优化的科学计算模块。警告:安装Python3Python2.7支持维护到2020.1.1在Linux环境下,如果使用最新的发行版,很多已经根据可能打包,建议使用包管理器。其他系统平台的一些大型和完整的Python发行版AnacondaEPDWinPython1.4工作流程:交换环境和文本编辑器以交互方式工作以测试和理解算法:在本节中,我们描述了交互和命令行工作流程。Python是一种通用语言。因此,没有一定的工作环境可供选择,使用方式不止一种,如Web服务器、嵌入式设备等。这使得很难找到合适的入门方式。1.4.1交互式工作我们推荐IPython作为交互式命令行,或者它的后继者Jupyternotebook。它将帮助您轻松轻松地理解算法。在笔记本中时,按Shift+Enter以运行1.4.2在编辑器中进行优化工作随着您的进步,创建一个可以重复使用的Python文件也很重要,而不仅仅是在交互工作时。因此,强大的编辑器大有帮助。以下是一些功能强大且易于使用的编辑器:Spyder:集成IPython、调试器、分析器...PyCharm:集成IPython、调试器、笔记本...(免费和付费版本)VisualStudioCode:集成Python命令行,notebook,debugger...Atom有一些编辑器集成了各种用于科学计算的Python发行版,你可以在菜单中找到它们1.4.3IPython和Jupyter的提示和技巧用户手册包含丰富的信息,在这里我们做一个简要介绍4个功能:历史记录、Tab补全、魔术功能和别名。命令历史与Unixshell类似,IPython的命令行支持命令记录。按上下键翻阅记录,显示最近使用的TabCompletion,这是一个方便的代码补全功能Magicfunctions,格式前缀'%'用于函数%cd:changecurrentdirectory%cpaste:allows粘贴代码,Python命令行的前缀“>>>”和IPython的“in[3]”非常有效%timeit:允许多次执行代码段,使用标准库的timeit模块%debug:允许你进入错误调试(post-mordem)。也就是说,当你执行可能会抛出异常的代码时,使用这条指令会进入到发生错误的代码断点处。文件夹文件项,以及cp、rm。后续第2章:Python编程语言