SciPy

主题软件

此页面索引了与 SciPy 相关的附加软件和其他资源,按科学学科或计算主题分类。它旨在做到详尽无遗。如果您知道未列出的资源,请参阅下面的“关于此页面”。

可以在 Python 包索引 上找到其他有用的软件包,尤其是在其 科学/研究类别 中。

您可能还想查看 SciKits 列表,专门针对科学计算任务的 Python 包。

关于此页面

这些列表按主题大致排序,首先是介绍性资源,然后是更通用的主题,最后是学科特定的资源。

除非另有说明,否则此处列出的所有软件包均以某种形式的开源许可证提供。

如果您分发或知道此处未列出的资源,请添加列表。您可以通过在 GitHub 上创建一个帐户并转到 此页面的源代码 来完成此操作。在那里,单击“编辑”按钮并进行更改。或者,将邮件发送到 scipy-dev 邮件列表,主题为“添加到主题软件页面”。

请包含描述 - 尽可能简短,但请确保在您的文本中包含指向资源主页的链接以及潜在用户可能搜索以找到资源的一些关键词。

如果您希望重新构建页面(例如,将一个部分分解成它自己的页面,更改部分标题等),请先将想法提议给 SciPy-dev@scipy.org 邮件列表,并获得社区反馈。

通用 Python 资源

教程和文本

通用 Python/编程教程:

使用 Python 进行科学计算的教程:

较旧的科学计算教程:

工作环境

  • Anaconda: 一个免费的、企业级的 Python 发行版,包含数百个经过跨平台测试和优化的软件包,适用于 Mac OS X、Windows 和 Linux 用户。安装到单个目录中。不需要 root 或本地管理员权限。包含包和环境管理器工具,conda <http://conda.pydata.org/>

  • Python(x,y): 一个完整的 Windows 或 Ubuntu 用户发行版,包含科学开发所需的所有软件包,包括基于 Qt 的 GUI 设计。还包括 Spyder(见下文),一个适合科学开发的 Python IDE。仅限 Python 2。

  • WinPython: 与 Python(x, y) 类似,另一个包含科学软件包和 Spyder IDE 的综合发行版。仅限 Windows,但维护更加积极,并支持最新的 Python 3 版本。

  • IPython: 一个交互式环境,具有许多针对典型科学使用中的高效工作而设计的特性。它借鉴了 Mathematica、IDL、MATLAB 和类似软件包的交互式 shell 的许多想法。它包括对 matplotlib 和 gnuplot 绘图软件包的特殊支持。IPython 还支持 (X)Emacs,可以用作一个完整的 IDE,IPython 作为交互式 Python shell。

  • Jupyter Notebook: 一个基于 Web 的应用程序,它基于 IPython,允许您创建和共享包含实时代码的文档,并且可以在从统计建模到数据清理的各种环境中使用。

  • Spyder: 一个基于 PyQt 的 IDE,它将软件开发工具的编辑、分析、调试和分析功能与科学环境的数据探索、交互式执行、深度检查和丰富的可视化功能相结合。包括集成的 IPython、SymPy、PyLab 和 Cython 控制台,一个支持 GUI 编辑和操作集合、NumPy 数组、pandas DataFrame 和任意对象的变量资源管理器,一个基于 SciPy 的数据导入向导,以及内置的 Matplotlib 可视化。

  • Microsoft Visual Studio: 一个免费、功能丰富的 IDE,原生支持 Python 和 Anaconda。它还支持 CPython、IronPython、IPython REPL、调试、性能分析、Git 和 GitHub。此外,它还有一个更轻量级的版本,名为 Visual Studio Code,它是一个带有调试器的代码编辑器。两者都具有强大的 IntelliSense 功能,并支持 Windows 和 macOS,以及 Code 的 Linux。

  • Enthought Canopy: 一个分析环境,包含 Enthought 的 Python 发行版和一个分析桌面,其中包含代码检查文本编辑器和 IPython 控制台。Canopy 还包括一个图形化包管理器、在线文档浏览器以及对 Linux、Windows 和 Mac 的支持。

  • IEP: 一个跨平台的 Python IDE,专注于交互性和自省,使其非常适合科学计算。其实用的设计旨在追求简单性和效率。IEP 由两个主要组件组成,编辑器和 shell,并使用一组可插拔工具以多种方式帮助程序员。一些示例工具包括源结构、项目管理器、交互式帮助、工作区等。

  • Pymacs: 一种工具,一旦从 Emacs 启动,就可以实现 Emacs Lisp 和 Python 之间的双向通信。

  • Python Tools for Visual Studio: 一个功能丰富的 Visual Studio IDE 插件,支持 CPython、IronPython、IPython REPL、调试、性能分析,包括在 HPC 集群上运行调试 MPI 程序。

  • Plotly: 一个用于数据探索和绘图的在线 Python 环境。Plotly 具有命令行,并允许存储和共享 Python 脚本,并对 交互式 Plotly 图表 提供特殊支持。

  • 其他 IDE 链接: 官方 Python 网站维护着一个全面的 Python IDE 列表。

科学:基本工具

这些链接涵盖了几乎所有领域科学工作中普遍有用的基本工具。后面列出的许多更具体的软件包依赖于这些工具中的一个或多个。

  • SciPy: 一个伞形项目,将各种高级科学和工程模块作为单个软件包包含在一起。SciPy 包含用于线性代数(包括对 BLAS 和 LAPACK 的包装器)、优化、积分、特殊函数、FFT、信号和图像处理、ODE 求解器等的模块。

  • NumPy: SciPy 构建的基础软件包,也是其先决条件。它融合了 Numeric 和 Numarray 的混合体,包含了两个软件包的功能。如果您是 Python 的数值计算新手,应该使用 NumPy。

  • ScientificPython : 另一个用于科学计算的 Python 模块集合。它包括基本几何(向量、张量、变换、向量和张量场)、四元数、自动导数、(线性)插值、多项式、基本统计、非线性最小二乘拟合、单位计算、与 FORTRAN 兼容的文本格式化、通过 VRML 进行 3D 可视化,以及两个用于简单线图和 3D 线框模型的 Tk 小部件。它还提供与 netCDF 库(可移植的结构化二进制文件)、MPI(消息传递接口,基于消息的并行编程)和 BSPlib(批量同步并行编程)的接口。SciPy 包含了其中的大部分功能,但并非全部。

  • Numexpr: 一个软件包,它接受 numpy 数组表达式作为字符串,将其重写以优化执行时间和内存使用,并比 numpy 通常更快地执行它们。

  • PyGSL: 用于 GNU 科学库 (gsl) 的 Python 接口。

  • GMPY2: 用于 GNU 多精度库 (gmp) 的 Python 接口。

  • PyROOT: 用于 ROOT 框架的基于运行时的 Python 绑定:ROOT 是一个完整的科学应用程序开发系统,从数学和图形库到高效存储和读取海量数据集,再到分布式分析。Python 绑定基于运行时类型信息,因此您可以通过一行代码将自己的 C++ 类动态添加到系统中,并且不再需要向下转换和指针操作。使用 RTTI 将内存和调用开销降至最低,从而使绑定比任何“标准”绑定生成器都更轻量级且更快。

  • bvp: 用于 COLNEW 边值问题求解器修改版本的 Python 包装器。(COLNEW 具有非商业专用许可证)

  • NetworkX: 用于创建、操作和研究复杂网络的结构、动态和功能的 Python 包。

  • PyAMG: 用于解决大规模线性代数问题的代数多重网格 (AMG) 求解器库。

  • PyTrilinos: 用于 Trilinos 的 Python 接口,Trilinos 是一个用于解决大规模、复杂多物理场工程和科学问题的框架。

  • PyIMSLStudio: 一个完整的打包、支持和文档化的开发环境,适用于 Windows 和 Red Hat,专为数学和统计模型的原型设计以及将其部署到生产应用程序而设计。PyIMSL Studio 包含 IMSL 数值库的包装器、Python 发行版以及一系列对原型分析开发有用的开源 Python 模块。PyIMSL Studio 可供非商业用途或商业评估免费下载。

  • Bottleneck: 用 Cython 编写的快速 NumPy 数组函数集合。

  • KryPy: 用于有效解决具有大型稀疏矩阵的线性代数系统的 Krylov 子空间方法包。

  • Imageio: 一个库,提供了一个简单的接口来读取和写入各种图像数据,包括动画图像、视频、体积数据和科学格式。它是跨平台的,在 Python 2.x 和 3.x 上运行,并且易于安装。

  • mpmath: 一个免费的 (BSD 许可) Python 库,用于具有任意精度的实数和复数浮点运算。

  • paramnormal: 一个围绕 scipy.stats 模块的包装器,它有助于使用更传统的参数创建、拟合和可视化概率分布。

  • MetroloPy: 用于处理物理量的工具:不确定度传播和单位转换

运行用其他语言编写的代码

包装 C、C++ 和 FORTRAN 代码

  • SWIG: SWIG 是一种软件开发工具,它将用 C 和 C++ 编写的程序与各种高级编程语言连接起来。SWIG 主要用于常见的脚本语言,例如 Perl、Python、Tcl/Tk 和 Ruby。

  • Boost.Python: 一个 C++ 库,它使 C++ 和 Python 之间能够无缝互操作。 PythonInfo Wiki 包含一个很好的操作指南。 “c++-sig”: https://pythonlang.cn/community/sigs/current/cplusplus-sig/ 在 python.org 上专门用于 Boost,您可以订阅他们的邮件列表。

  • F2PY: 提供 Python 和 FORTRAN 语言之间的连接。 F2PY 是一个 Python 扩展工具,用于从(手工编写或 F2PY 生成的)签名文件(或直接从 FORTRAN 源代码)创建 Python C/API 模块。

  • Cython: 允许在 Python 代码中包含 C/C++。 它具有自动创建基于 C/C++ 的 Python 扩展模块的功能,以及在 Python 源代码中直接内联 C/C++ 代码的功能。 后者将 Python 的脚本灵活性与编译后的 C/C++ 的执行速度相结合,同时自动处理所有模块生成细节。

  • Pyrex: Pyrex 允许您编写混合使用 Python 和 C 数据类型的代码,并将其编译成 Python 的 C 扩展。 另请参见 Cython.

  • PyCxx: CXX/Objects 是一组 C++ 工具,用于简化编写 Python 扩展。 PyCXX 使编写 Python 扩展变得更容易的主要方式是,它极大地提高了您的程序不会出现引用计数错误并且不必不断检查 Python C API 的错误返回值的可能性。

  • ctypes: 一个用于在 Python 中创建和操作 C 数据类型以及调用动态链接库/共享 dll 中的函数的包。 它允许用纯 Python 包装这些库。

  • railgun: 用于在 C 和 Python 中进行更快、更轻松的仿真编程的 ctypes 工具

包装 MATLAB、R 和 IDL 代码

  • matlab: MATLAB 的“官方”Python 接口。 通过将 MATLAB 视为计算引擎来与之交互。 有关如何从 MATLAB 与 Python 交互的信息,请访问此链接 here.

  • pythoncall: 一个 MATLAB 到 Python 的桥梁。它在 MATLAB 中运行 Python 解释器,并允许在 Python 和 MATLAB 工作区之间传输数据(矩阵等)。

  • rpy2: 一个非常简单但强大的 Python 接口,用于 R 编程语言。它可以管理各种 R 对象,并可以执行任意 R 函数(包括图形函数)。来自 R 语言的所有错误都将转换为 Python 异常。任何为 R 系统安装的模块都可以在 Python 中使用。

  • mirpyidl: 一个从 Python 调用 IDL(交互式数据语言)的库。允许透明地包装 IDL 例程和对象,以及任意执行 IDL 代码。利用与单独运行的 idlrpc 服务器(与 IDL 一起分发)的连接。

从其他数组语言转换代码

  • IDL: ITT 的交互式数据语言

  • SMOP: 一个小型 MATLAB 和 Octave 到 Python 转换器。将遗留的 MATLAB 库转换为 python。

绘图、数据可视化、3-D 编程

具有(大部分)2-D 焦点的工具

  • matplotlib: 一个 Python 2-D 绘图库,它生成可在各种硬拷贝格式(PNG、JPG、PS、SVG)和跨平台的交互式 GUI 环境(WX、GTK、Tkinter、FLTK、Qt)中使用的出版质量图形。matplotlib 可用于 Python 脚本、从 Python shell(类似于 MATLAB 或 Mathematica)交互使用、在生成动态图表 Web 应用程序服务器中使用,或嵌入 GUI 应用程序中。对于交互式使用,IPython 提供了一种与 matplotlib 集成的特殊模式。有关食谱,请参阅 matplotlib 画廊

  • Bokeh: 一个用于大型数据集的交互式 Web 可视化库。它的目标是提供优雅、简洁的 Protovis/D3 风格的新图形构建,同时为瘦客户端提供对大型数据的交互式高性能。

  • Chaco: Chaco 是一个用于制作交互式绘图应用程序的 Python 工具包。 Chaco 应用程序可以从简单的线形绘图脚本到用于交互式探索相互关联数据的 GUI 应用程序。 作为 Enthought 开发的开源项目,Chaco 利用了其他 Enthought 技术,例如 Kiva、Enable 和 Traits,以生成高质量的交互式绘图。

  • PyQwt: 一组用于 Qwt C++ 类库的 Python 绑定,该类库使用用于科学和工程应用程序的小部件扩展了 Qt 框架。 它提供了一个用于绘制二维数据的窗口小部件,以及各种用于显示和控制有界或无界浮点数的小部件。

  • HippoDraw: 一个高度交互式的数据分析环境。 它使用来自 The Qt CompanyQt 库用 C++ 编写。 它包含 Python 绑定,并具有许多针对高能物理环境中典型数据分析的功能,因为它包含对 ROOT NTuples 的原生支持。 它针对实时数据收集和显示进行了优化。

  • Biggles: 一个用于创建出版物质量的二维科学绘图的模块。 它支持多种输出格式(PostScript、X11、PNG、SVG、GIF),理解简单的 TeX,并拥有一个高级、优雅的界面。

  • Gnuplot.py: 一个 Python 包,它与流行的开源绘图程序 gnuplot 交互。 它允许您从 Python 中使用 gnuplot 来绘制内存中的数据数组、数据文件或数学函数。 如果您使用 Python 执行计算或作为数值程序的“粘合剂”,则可以使用此包在计算时动态绘制数据。 IPython 包含对 Gnuplot.py 的额外增强功能(但需要基本包),使其在交互式使用中更有效。

  • Graceplot: 一个用于 Grace 二维绘图程序的 Python 接口。

  • disipyl: 一个围绕用 Python 语言编写的 DISLIN 绘图库的 面向对象包装器。 disipyl 提供了一组表示 DISLIN 绘图各个方面的类,以及一些易于使用的类,用于创建常用的绘图格式(例如散点图、直方图、三维曲面图)。 设计库的主要目标是促进交互式数据探索和绘图创建。

  • OpenCV: 一个成熟的图像处理、结构分析、运动分析和目标跟踪以及模式识别库,最近添加了基于 Swig 的 Python 绑定。提供 Windows 和 Linux-RPM 包。最初由英特尔赞助的开源项目,可以与英特尔性能基元包 (IPP) 结合使用以提高性能。

  • pygame: 虽然旨在使用 Python 编写游戏,但其通用多媒体库在可视化方面肯定有其他应用。

  • PyNGL: 一个用于创建出版质量 2-D 可视化的 Python 模块,重点关注地球科学。PyNGL 可以创建等高线、矢量、流线、XY 图,并将这些图中的任何一个叠加在多个地图投影上。PyNGL 的图形基于与 NCAR 命令语言和 NCAR 图形相同的优质图形。

  • Veusz : 一个用 Python 编写的科学绘图软件包。它使用 PyQtNumPy。Veusz 旨在生成可用于出版的 PDF、SVG、位图和 Postscript 输出。

  • Yellowbrick 一套用于 scikit-learn 估计器的自定义 matplotlib 可视化工具,用于支持可视化模型选择、评估和诊断。

数据可视化(主要是 3-D,曲面和体积渲染)

  • Mayavi2: 一个免费的、易于使用的 Python 科学数据可视化工具。它使用惊人的 可视化工具包 (VTK) 用于图形,并提供使用 Tkinter 编写的 GUI。MayaVi 支持以多种方式可视化标量、矢量和张量数据,包括网格、曲面和体积渲染。MayaVi 可以用作独立的 GUI 程序,也可以用作由其他 Python 程序驱动的 Python 库。它透明地支持 NumPy 数组,并提供一个强大的类似 pylab 的等效项,称为 mlab,用于快速 3-D 绘图。

  • visvis: 一个纯 Python 库,用于以面向对象的方式可视化 1-D 到 4-D 数据。本质上,visvis 是一个在 OpenGl 之上的 Python 面向对象层,从而将 OpenGl 的强大功能与 Python 的可用性相结合。一组函数形式的类似 MATLAB 的界面允许轻松创建对象(例如,plot()、imshow()、volshow()、surf())。

  • S2PLOT: 一个基于 OpenGL 的 3-D 绘图库,支持标准和增强显示设备。S2PLOT 库是用 C 编写的,可以在 GNU/Linux、Apple/OSX 和 GNU/Cygwin 系统上的 C、C++、FORTRAN 和 Python 程序中使用。该库目前是闭源的,但可免费用于商业和学术用途。他们希望在 2008 年底发布开源版本。

LaTeX、PostScript、图表生成

  • PyX: 用于创建封装 PostScript 图形的包。它提供了 PostScript 的抽象和 TeX/LaTeX 接口。复杂的任务,如出版质量的 2-D 和 3-D 图表,都是由这些基本元素构建的。

  • Dot2TeX: Dot/Graphviz/LaTeX 家族中的另一个工具,这是一个 Graphviz 到 LaTeX 的转换器。dot2tex 的目的是让 Graphviz 生成的图形具有更友好的 LaTeX 风格。这是通过将 Graphviz 的 xdot 输出转换为一系列 PSTricks 或 PGF/TikZ 命令来实现的。

  • pyreport: 运行脚本并捕获输出(包括 pylab 图形)。从中生成 LaTeX 或 pdf 报告,包括文字注释和格式化的代码。

其他 3-D 编程工具

  • VPython: 一个 Python 模块,提供实时 3-D 输出,易于初学者使用。

  • OpenRM 场景图:: 一个开发人员工具包,实现场景图 API,并使用 OpenGL 进行硬件加速渲染。OpenRM 旨在用于在 Unix/Linux/Windows 平台上构建高性能、可移植的图形和科学可视化应用程序。

  • Panda3D: 一个开源游戏和模拟引擎。

  • Python 计算机图形工具包:: 一组 Python 模块,包含创建 3-D 计算机图形图像所需的类型和函数。

  • Python 3-D 软件集合: 一小部分指向 Python 软件的指针,用于在三维空间中工作。

  • pythonOCC: 用于 OpenCascade 的 Python 绑定,一个 3-D 建模和数值模拟库。(相关 项目)

  • PyGTS: 一个 Python 包,用于构建、操作和对 3-D 三角形表面进行计算。它是 GNU 三角形表面 (GTS) 库 的手工制作的 Python 绑定。

  • pyFormex: 一个程序,通过一系列数学运算来生成、转换和操作大型 3-D 结构的几何模型。

任意维工具

  • SpaceFuncs: 一个用于 2-D、3-D、N-D 几何建模的工具,具有参数化计算、数值优化和求解几何方程组(自动微分)的可能性。

  • pyqtgraph: 纯 Python 绘图、3-D 图形(包括体积和等值面渲染)和基于 PyQt、python-opengl 和 NumPy/SciPy 的 GUI 库。包括用于显示和操作多维图像数据的工具。旨在用于科学/工程应用;速度足够快,可以进行实时数据/视频显示。

优化

  • CMA: 用于 Python 中非线性数值优化的协方差矩阵自适应进化策略。

  • CVXOPT: (许可证:GPL3),一个用于凸优化的工具,它定义了自己的矩阵式对象并与 FFTW、BLAS 和 LAPACK 接口。

  • CVXPY: 用于凸优化问题的 Python 嵌入式建模语言。

  • DEAP: Python 中的分布式进化算法。

  • ECsPy: Python 中的进化计算。

  • Mystic: 一个专注于连续优化的优化框架。

  • NLPy: 一个 Python 优化框架,它利用 AMPL 创建问题实例,然后可以在 Python 中处理这些实例。

  • OpenOpt: (许可证:BSD),一个数值优化框架,它拥有自己的求解器并连接到许多其他求解器。它允许连接“任何”许可证的软件,而 scipy.optimize 仅允许使用免版税的许可证(如 BSD、MIT)。其他功能包括所有求解器的便捷标准接口、图形输出、分类变量、析取和其他逻辑约束、自动一阶导数检查、用于实验规划的多因素分析工具等等。您可以使用自动微分优化 FuncDesigner 模型。OpenOpt 还提供商业附加组件(小型研究/教育问题免费),用于随机规划。

  • PuLP: 一个 Python 包,可用于描述线性规划和混合整数线性规划优化问题。

  • PyEvolve: Python 中的遗传算法。

  • Pyiopt: COIN-OR Ipopt 求解器的 Python 接口。

  • Pyomo: Pyomo 是一个 Python 优化相关包的集合,它支持各种优化功能,用于制定和分析优化模型。

  • python-zibopt: SCIP 的 Python 接口。

  • scikits.optimization: 一个完全用 Python 编写的通用优化框架。

  • lmfit-py: 一个围绕 scipy.optimize.leastsq 的包装器,它使用命名的拟合参数,这些参数可以变化、固定或使用简单的数学表达式约束。

  • noisyopt: 提供用于优化噪声函数的算法,包括具有自适应采样和同时扰动随机逼近的模式搜索。

  • scipydirect: 关于用于全局优化的 DIRECT 算法的包装器。

非线性方程组

  • 来自 scipy.optimize 的 fsolve

  • sympy 及其 solvers 模块,可用于求解线性方程和非线性方程。

自动微分

(不要与通过有限差分导数近似和 Maxima、SymPy 等提供的符号微分进行混淆,参见 wikipedia.org 条目)

  • FuncDesigner: 还可以求解常微分方程并使用 OpenOpt 进行数值优化,执行不确定性和区间分析。

  • ScientificPython: 请参见模块 Scientific.Functions.FirstDerivatives 和 Scientific.Functions.Derivatives。

  • pycppad: CppAD 的包装器,二阶前向/反向。

  • pyadolc: ADOL-C 的包装器,任意阶前向/反向。

  • algopy: 在算法微分的前向和反向模式下评估高阶导数,特别关注数值线性代数。

  • CasADi: 用于算法(也称为自动)微分和数值优化的符号框架。

  • autograd: 高效的自动微分,对使用 NumPy 的代码有很好的支持。

有限差分导数近似

数据存储/数据库

  • PyTables: PyTables 是一个分层数据库包,旨在有效地管理大量数据。它建立在 HDF5 库NumPy 包之上。

  • python-hdf4: python-hdf4 是 HDF4 库的 Python 接口。在 HDF4 提供的众多组件中,pyhdf 目前支持以下组件:SD(科学数据集)、VS(Vdata)、V(Vgroup)和 HDF(通用声明)。

  • h5py: h5py 是 HDF5 库的 Python 接口。它为 HDF5 提供比 PyTables 更直接的包装器。

并行和分布式编程

有关 NumPy/SciPy 中并行编程的简要讨论,请参见并行编程。

  • PyMPI: 用于 Python 的分布式并行编程。此包基于传统的 Python,使用户能够编写基于 MPI 消息传递原语的分布式并行程序。通用 Python 对象可以在处理器之间传递消息。

  • Pypar: 以 Python 风格进行并行编程 Pypar 是一个高效且易于使用的模块,它允许用 Python 编程语言编写的程序/脚本在多个处理器上并行运行,并使用消息传递进行通信。Pypar 提供了对消息传递接口标准 MPI 的重要子集的绑定。

  • Joblib: 用于 Python 中轻量级管道处理的工具集,用于轻松进行并行计算。

  • jug: 基于任务的并行框架。它特别适用于参数扫描等容易并行化的问题。它可以利用多核机器或计算集群中的机器集。

  • MPI for Python: 用于消息传递接口的面向对象的 Python 绑定。此模块提供 MPI 支持,以便并行运行 Python 脚本。它构建在 MPI-1 规范之上,但提供了一个面向对象的接口,该接口紧密遵循标准 MPI-2 C++ 绑定。任何“可腌制”的 Python 对象都可以进行通信。它支持点对点(发送、接收)和集体(广播、散射、收集)通信,以及组和通信器(互连、内部和拓扑)管理。

  • 模块 Scientific: Konrad Hinsen 的 ScientificPython 中的 BSP 提供了对并行编程的批量同步并行 (BSP) 模型的实验性接口(请注意 ScientificPython 页面上与 BSP 教程的链接)。模块 Scientific.MPI 提供了 MPI 接口。 BSP 模型是 MPI 和 PVM 消息传递模型的替代方案。据说它比消息传递模型更容易使用,并且保证无死锁。

  • Pyro: Python 远程对象 (Pyro) 提供了面向对象的 RPC 形式。它是一个完全用 Python 编写的分布式对象技术系统,旨在非常易于使用。使用 Pyro 时,您无需再担心编写网络通信代码,只需像平常一样编写 Python 对象即可。只需几行额外的代码,Pyro 就会在您将对象拆分到网络上的不同机器后处理对象之间的网络通信。所有复杂的套接字编程细节都由 Pyro 处理,您只需像调用本地对象一样调用远程对象的方法。

  • PyXG: 面向对象的 Python 接口,用于访问苹果的 Xgrid。PyXG 使得从交互式 Python 会话或独立脚本中提交和管理 Xgrid 作业和任务成为可能。它提供了一种极其轻量级的机制,可以在 Mac 电脑集群上执行独立的并行任务。

  • Pyslice: Pyslice 是一种专门的模板系统,它用从所有变量组合中获取的数字替换模板数据集中的变量。它根据系列中变量的所有组合从输入模板文件创建数据集,并且可以选择对每个创建的数据集运行模拟或将模拟运行提交到队列。例如:创建所有可能的组合数据集,这些数据集表示“flow”变量,其数字从 10 到 20,步长为 2,而“level”变量具有 24 个值,这些值取自均值为 104、标准差为 5 的正态分布。

  • PyOpenCL: OpenCL 是一种用于异构设备(包括 CPU、GPU 和其他处理器)上的并行编程的标准。它提供了一种通用的类 C 语言,用于在这些设备上执行代码,以及用于设置计算的 API。PyOpenCL 旨在成为 OpenCL 库的易于使用的 Python 包装器。

  • PyCUDA: PyCUDA 是 Nvidia 的 CUDA 并行计算 API 的 Python 接口。此库可以在多处理器或多线程环境中安全使用。

  • PyCSP: 用于 Python 的通信顺序进程。PyCSP 可用于将科学软件结构化为并发任务。依赖关系通过显式通信处理,并允许更好地理解结构。PyCSP 应用程序可以使用协程、线程或进程执行。

偏微分方程 (PDE) 求解器

  • FiPy: 请参阅“’’’杂项’’’”中的条目。

  • SfePy: 请参阅“’’’杂项’’’”中的条目。

  • Hermes: hp-FEM 求解器,请参阅“’’’杂项’’’”中的条目。

按科学领域组织的主题指南

天文学

  • AstroPy: 关于 Python 和天文学信息的中央存储库。

  • AstroPython: 使用 Python 进行天文学研究的知识库。

  • Astropy 及其 fits 包:在 Python 脚本语言和 PyRAF(IRAF 的基于 Python 的接口)下,用于访问 FITS 格式文件的接口。

  • PyRAF: 一种新的命令语言,用于运行基于 Python 脚本语言的 IRAF 任务。

  • BOTEC: 一个简单的天体物理和轨道力学计算器,包括所有已命名太阳系天体的数据库。

  • AstroLib:一项开源工作,旨在开发类似于 IDL ASTRON 包中可用的通用天文实用程序。

  • APLpy: 一个 Python 模块,旨在生成 FITS 格式的天文图像数据的出版质量图。

  • 教程: 使用 Python 进行天文学中的交互式数据分析。

  • Casa: 一套 C++ 应用程序库,用于减少和分析射电天文数据(源自以前的 AIPS++ 包),并具有 Python 脚本接口。

  • Healpy: 用于使用和绘制 HEALpix 数据(例如,球面表面地图,如 WMAP 数据)的 Python 包。

  • Pysolar: 用于模拟太阳对地球上任何点的照射的 Python 库集合。Pysolar 包括用于极其精确的星历计算等的代码。也可以归类为工程工具。

  • pywcsgrid2: 使用 matplotlib 显示天文 fits 图像。

  • pyregion: Python 模块,用于解析 ds9 区域文件(也支持 ciao 区域文件)。

  • SpacePy: 提供用于探索和分析空间科学数据工具。功能包括 NASA CDF 的 Python 接口、时间和坐标转换、用于数据和元数据操作的数据模型、空间科学中广泛使用的经验模型,以及从统计分析到多线程的各种工具。

人工智能和机器学习

  • 另请参阅下面的“’’’贝叶斯统计’’’”部分。

  • scikit learn: 用于 SciPy 的 Python 通用高效机器学习和数据挖掘库。

  • ffnet: 用于 Python 的前馈神经网络,使用 NumPy 数组和 SciPy 优化器。

  • pyem: 高斯混合模型工具。它实现了高斯混合的 EM 算法(包括全矩阵协方差)和用于聚类的 BIC 准则。它包含在 scikit-learn 工具箱中。

  • PyBrain: 机器学习库,重点关注强化学习、(循环)神经网络和黑盒优化。

  • Orange: 基于组件的数据挖掘软件。

  • pymorph 形态学工具箱: 用于 Python 的 pymorph 形态学工具箱是一个强大的最新最先进的灰度形态学工具集合,可应用于图像分割、非线性滤波、模式识别和图像分析。 Pymorph 最初由 Roberto A. Lutofu 和 Rubens C. Machado 编写,但现在由 Luis Pedro Coelho 维护。

  • pycplex: ILOG CPLEX 可调用库的 Python 接口。

  • ELEFANT: 我们的目标是开发一个开源机器学习平台,它将成为原型设计和部署机器学习算法的首选平台。

  • 贝叶斯块: 该库是使用变分贝叶斯学习的变分构建块框架的 C++/Python 实现。

  • 蒙特·派森: 一个用纯 Python 编写的机器学习库。重点是基于梯度的学习。蒙特包括神经网络、条件随机场、逻辑回归等等。

  • hcluster: 一个用于 SciPy 的层次聚类库,其基础实现是用 C 编写的,以提高效率。对数据进行聚类,计算聚类统计信息,并绘制树状图。

  • PyPR: 一个用 Python 编写的机器学习方法集合:人工神经网络、高斯过程、高斯混合模型和 K 均值。

  • Theano: 一个 CPU 和 GPU 数学表达式编译器,Theano 是一个 Python 库,允许您有效地定义、优化和评估涉及多维数组的数学表达式。

  • NeuroLab: Neurolab 是一个简单而强大的 Python 神经网络库。

  • scikit 网络: 用于分析大型图的 Python 库,以 SciPy 的 CSR 格式表示为稀疏矩阵。

贝叶斯统计

  • PyMC2: PyMC2 是一个 Python 模块,提供了一个马尔可夫链蒙特卡罗 (MCMC) 工具包,使贝叶斯模拟模型相对容易实现。PyMC 使用户无需重新实现 MCMC 算法和相关实用程序,例如绘图和统计摘要。这使建模者能够专注于手头问题的关键方面,而不是贝叶斯统计模拟的平凡细节。

  • PyBayes: PyBayes 是一个面向对象的 Python 库,用于递归贝叶斯估计(贝叶斯滤波),使用起来很方便。已经实现的卡尔曼滤波器、粒子滤波器和边缘化粒子滤波器,所有这些都建立在一个轻量级的概率密度函数框架之上。PyBayes 可以选择使用 Cython 来获得更大的速度提升(Cython 构建速度快几倍)。

  • NIFTY: 数值信息场理论提供了一个工具包,旨在使信号推理算法的编码成为可能,这些算法无论底层空间网格及其分辨率如何都能运行。

生物学(包括神经科学)

  • Brian:一个用于 Python 中尖峰神经网络的模拟器。

  • BioPython:一个国际开发者协会,致力于开发用于计算分子生物学的免费 Python 工具。

  • PyCogent:一个用于基因组生物学的软件库。

  • 结构生物信息学 Python 教程:本教程演示了解释型编程语言 Python 在快速开发结构生物信息学组件化应用程序方面的实用性。我们将介绍语言本身及其一些最重要的扩展模块。还将介绍生物信息学特定的扩展,并演示如何将这些组件组装起来以创建自定义应用程序。

  • PySAT:Python 序列分析工具(版本 1.0):PySAT 是一个完全用 Python 编写的生物信息学工具集合。一篇描述这些工具的论文

  • PySCeS:Python 细胞系统模拟器:PySCes 包含用于模拟和分析细胞系统的工具(GPL)。

  • SloppyCell:SloppyCell 是一个软件环境,用于模拟和分析生物分子网络,由康奈尔大学 Jim Sethna 和 Chris Myers 的团队开发。

  • PyDSTool:PyDSTool 是一个集成的模拟、建模和分析软件包,用于科学计算中的动力系统,并包含用于计算神经科学、生物力学和系统生物学应用的专用工具箱。

  • NIPY:Python 中的神经影像项目是一个用于分析结构和功能神经影像数据的环境。它目前拥有一个用于功能性磁共振成像 (FMRI) 的通用线性建模的完整系统。

  • ACQ4:用于电生理学、光刺激和荧光成像的数据采集和分析系统。

  • Vision Egg:为视觉研究实验生成刺激。

  • PsychoPy:在 Python 中创建心理学刺激。

  • pyQPCR: 一个图形界面应用程序,用于计算定量 PCR (QPCR) 原始数据。它使用从 QPCR 仪器中提取的定量循环值,并使用经过验证且普遍适用的模型(Delta-delta ct 方法)来提供最终的定量结果。

  • VeSPA: VeSPA 套件包含三个磁共振 (MR) 光谱应用:RFPulse(用于 RF 脉冲设计)、Simulation(用于光谱模拟)和 Analysis(用于光谱数据处理和分析)。

  • Neo: 一个用于在 Python 中表示电生理数据的包,以及对读取各种神经生理文件格式的支持。

  • Myokit: 一个用于处理心脏肌细胞(和其他可兴奋组织)的 ODE 模型的编程工具包。

  • MNE-Python: 一个用于脑磁图 (MEG) 和脑电图 (EEG) 数据分析的包。

动力系统

  • PyDSTool: PyDSTool 是一个集成的模拟、建模和分析包,用于动力系统(ODE、DDE、DAE、映射、时间序列、混合系统)。通过 PyCont 内置了连续和分岔分析工具。它还包含一个对科学计算有用的通用类库,包括一个增强的数组类和 SciPy 算法的包装器。还提供了针对系统生物学、计算神经科学和生物力学的特定应用实用程序。使用符号数学功能和组合模型构建类简化了复杂系统模型的开发。这些可以自动“编译”成动态链接的 C 代码或 Python 模拟器。

  • SimPy: SimPy(= Simulation in Python)是一个基于标准 Python 的面向对象、基于进程的离散事件仿真语言。它是在 GNU Lesser GPL (LGPL) 许可下发布的。SimPy 为建模者提供了仿真模型的组件,包括进程(用于像客户、消息、车辆这样的活动组件),资源(用于像服务器、收银台、隧道这样的形成有限容量拥塞点的被动组件)。它还提供监控变量来帮助收集统计数据。随机变量由标准 Python 随机模块提供。SimPy 附带数据收集功能、GUI 和绘图包。它可以轻松地与其他包进行接口,例如绘图、统计、GUI、电子表格和数据库。

  • Model-Builder: Model-Builder 是一款基于 GUI 的应用程序,用于构建和模拟 ODE(常微分方程)模型。模型以数学符号定义,用户无需编写代码。结果可以以 csv 格式导出。基于 matplotlib 的图形输出包括时间序列图、状态空间图、频谱图和时间序列的连续小波变换。它还包括一个敏感性和不确定性分析模块。非常适合课堂使用。

  • VFGEN: VFGEN 是一个用于微分方程和延迟微分方程的源代码生成器。方程在 XML 格式中定义一次,然后使用 VFGEN 生成在多种格式中实现方程的函数。Python 用户会对 VFGEN 提供的 SciPy、PyGSL 和 PyDSTool 命令感兴趣。

  • DAE Tools: DAE Tools 是一款跨平台的以方程为导向的流程建模和优化软件。可以对各种类型的流程(集中式或分布式,稳态或动态)进行建模和优化。方程可以是常微分方程或不连续方程,框架会自动处理不连续性。仿真/优化结果可以绘制成图表或导出为各种格式。目前,Sundials IDAS 求解器用于求解 DAE 系统并计算灵敏度,BONMIN、IPOPT 和 NLOPT 求解器用于求解 NLP/MINLP 问题,同时还集成了各种直接/迭代稀疏矩阵线性求解器:SuperLU 和 SuperLU_MT、Intel Pardiso、AMD ACML、Trilinos Amesos(KLU、Umfpack、SuperLU、Lapack)和 Trilinos AztecOO(使用内置、Ifpack 或 ML 预处理器)。利用 GPGPU 的线性求解器也可用(SuperLU_CUDA、CUSP;仍处于早期开发阶段)。

  • ODES: ODES 为 SUNDIALS ode/dae 求解器(CVODE 和 IDA)提供 Python 绑定,这些求解器是针对刚性问题的最先进的 BDF 线性多步法,以及针对非刚性问题的 Adams-Moulton 线性多步法,在工业中得到广泛应用。该软件包学习曲线低,为用户提供了极大的灵活性。

  • Mousai: Mousai 可以求解一阶和二阶常微分方程组,这些方程组以状态空间形式编写(针对二阶形式求解加速度),并受谐波激励。您只需提供 Python 函数的名称,该函数可以是外部代码的包装器。

经济学和计量经济学

  • pyTrix: 一组用于经济学和计量经济学的小型工具,包括 pyGAUSS(用于 SciPy 的 GAUSS 命令模拟)。

  • pandas: 用于横截面和时间序列数据集的数据结构和工具。

电磁学和电气工程

  • FiPy: 请参阅 `Miscellaneous` 中的条目。

  • FEval: 请参阅 `Miscellaneous` 中的条目。

  • EMPy(电磁 Python):各种用于电磁问题和光学的常用算法,包括传递矩阵算法和严格耦合波分析。

  • 多层薄膜的光学: 包括传递矩阵法、相干和非相干传播以及深度相关的吸收曲线。

  • openTMM: 一个具有现代应用的电动力学 S 矩阵(传递矩阵)代码。

  • pyLuminous: 电介质界面的光学建模和传递矩阵求解器(包括单轴层的有用情况)。包括 pyQW 用于对非常简单的量子阱结构及其带间跃迁进行建模。

  • pyofss: 分析光纤通信系统,包括数值积分适当的薛定谔型方程以计算光纤色散。

  • ThunderStorm: 用于静电放电 (ESD) 传输线脉冲 (TLP) 测量数据分析的库。

  • electrode: 用于开发和分析射频表面离子阱的工具包。

  • scikit-rf: 微波/射频工程函数的汇编。适用于校准、数据分析、数据采集和绘图功能等任务。

  • netana: 电子网络分析仪,使用矩阵代数求解电子交流和直流 Mash 和节点网络方程。

地球科学

  • CDAT: (气候数据分析工具)是用于分析气候模型的一套工具。

  • Jeff Whitaker: 为大气模型人员制作了许多有用的工具,包括用于 matplotlibbasemap 工具包,以及与 NumPy 兼容的 netCDF4 接口。

  • seawater: 用于计算海水性质(UNESCO 1981 和 UNESCO 1983)的软件包。

  • atmqty: 计算地球上的大气量。

  • TAPPy - Python 中的潮汐分析程序: 将水位的每小时时间序列分解为潮汐分量。它使用 SciPy 的最小二乘优化。

  • ClimPy: 一个面向水文学的库。

  • GIS Python: 用于地理数据处理的 Python 程序和库。

  • SimPEG: 地球物理学中的模拟和参数估计(包括电磁学、大地电磁法、直流电阻率、磁力和重力的 3D 正演建模和反演程序)。

分子建模

  • Biskit: 一个面向对象的平台,用于结构生物信息学研究。结构和轨迹对象与 NumPy 紧密集成,例如,允许对分子或轨迹帧进行快速获取和压缩操作。Biskit 将许多外部程序(例如,XPlor、Modeller、Amber、DSSP、T-Coffee、Hmmer 等)集成到工作流程中,并支持并行化。

  • PyMOL: 一个分子图形系统,带有嵌入式 Python 解释器,专为实时可视化和快速生成高质量分子图形和动画而设计。

  • UCSF Chimera: UCSF Chimera 是一款高度可扩展的交互式分子图形程序。它是 UCSF Midas 和 MidasPlus 的继任者;但是,它已被完全 重新设计 以最大限度地提高可扩展性并利用硬件的进步。UCSF Chimera 可供学术界、政府、非营利组织和个人免费下载。

  • Python 大分子库 (mmLib): 用于分析和操作大分子结构模型的软件工具包和例程库。它提供了一系列有用的软件组件,用于解析 mmCIF、PDB 和 MTZ 文件,一个原子元素和单体的库,一个描述生物大分子面向对象的​​数据结构,以及一个 OpenGL 分子查看器。

  • 用于 Python 的 MDTools: MDTools 是一个 Python 模块,它提供了一组类,这些类对于分析和修改蛋白质结构很有用。当前功能包括读取 psf 文件,读取和写入(X-PLOR 风格)pdb 和 dcd 文件,计算任意残基选择的 phi-psi 角和其他属性,以及将来自 NAMD 的输出解析为易于操作的数据对象。

  • BALL - 生物化学算法库: 一组用于分子建模和可视化的库和应用程序。OpenGL 和 Qt 是底层的 C++ 层;一些组件是 LGPL 许可的,其他组件是 GPL 许可的。

  • SloppyCell:SloppyCell 是一个软件环境,用于模拟和分析生物分子网络,由康奈尔大学 Jim Sethna 和 Chris Myers 的团队开发。

  • PyVib2: 用于分析振动运动和振动光谱的程序。该程序旨在成为一个开源的“一体化”解决方案,供从事振动光谱学(拉曼和红外)和振动光学活性(ROA 和 VCD)领域的研究人员使用。它基于 NumPy、matplotlib、VTK 和 Pmw。

  • ASE: 一个用 Python 编写的原子模拟环境,旨在设置、引导和分析原子模拟。它可以使用多种后端计算引擎(例如,Abinit、Siesta、Vasp、Dacapo、GPAW 等)在密度泛函理论中进行从头算计算。它可以进行总能量计算、分子动力学、几何优化等等。它还提供了一个 GUI 和可视化工具,用于交互式工作。

  • PyEMMA: (EMMA = Emma’s Markov Model Algorithms) 是一个用于分析大量分子动力学模拟的开源 Python/C 包。特别是,它包含用于估计、验证和分析马尔可夫状态模型的算法,这是一个流行的工具集,可以深入了解模拟的动力学。它提供集体变量计算、聚类方法、时间滞后独立成分分析 (TICA) 以及马尔可夫状态模型、隐马尔可夫模型和多重集合模拟(如伞形采样)的模型估计。此外,过渡路径理论可以应用于这些模型,这允许通过过渡网络进行动力学路径提取和通量计算。

信号处理

  • GNU Radio: 一个免费的软件开发工具包,提供信号处理运行时和处理模块,使用现成的低成本外部射频硬件和通用处理器实现软件无线电。 GNU Radio 应用程序主要使用 Python 编程语言编写,而提供的性能关键信号处理路径则使用 C++ 实现,并使用处理器浮点扩展(如果可用)。 因此,开发人员能够在易于使用、快速应用开发的环境中实现实时、高吞吐量的无线电系统。 虽然它不是主要的仿真工具,但 GNU Radio 确实支持使用预先录制或生成的数据开发信号处理算法,从而避免了对实际射频硬件的需求。

  • pysamplerate: 一个针对 Source Rabbit Code (http://www.mega-nerd.com/SRC/) 的小型包装器,目前尚未完善,但现在可用于高质量音频信号的重采样,即使对于非理性比率也是如此。

  • audiolab: 一个小型库,用于将音频文件中的数据导入 NumPy 数组并将 NumPy 数组导出到音频文件。 它使用 libsndfile 进行 I/O (http://www.mega-nerd.com/libsndfile/),这意味着可以使用许多格式,包括 wav、aiff、HTK 格式和 FLAC(一种开源无损压缩格式)。 以前称为 pyaudio(不要与 pyaudio 混淆),现在是 scikits 的一部分。

  • PyWavelets: 一个用户友好的 Python 包,用于计算各种类型的离散小波变换。

  • PyAudiere: 一个非常灵活且易于使用的音频库,供 Python 用户使用。 可用方法允许您将各种格式的音频文件读入内存并播放或流式传输(如果它们很大)。 您可以将声音缓冲区作为 float32 的 NumPy 数组传递以播放(非阻塞)。 您还可以创建纯音、方波或“在线”白噪声或粉红噪声。 所有这些功能都可以同时使用。

  • CMU Sphinx: 一个免费的自动语音识别系统。 SphinxTrain 用于训练声学模型的软件包包括用于将 Sphinx 格式的声学特征和 HMM 参数文件读写到/从 NumPy 数组的 Python 模块。

符号数学、数论等

  • NZMATH: NZMATH 是一个基于 Python 的面向数论的计算系统,由东京都市大学开发。它包含用于因式分解、最大公约数、格约简、阶乘、有限域和其他类似功能的例程。不幸的是,它的文档很少,但如果你能找到它,它包含很多有用的东西。

  • SAGE: 一个综合环境,支持代数、几何和数论方面的研究。它包装了现有的库,并为椭圆曲线、模形式、线性代数和非交换代数以及更多内容提供了新的库。

  • SymPy: SymPy 是一个用于符号数学的 Python 库。它旨在成为一个功能齐全的计算机代数系统 (CAS),同时保持代码尽可能简单,以便易于理解和扩展。SymPy 完全用 Python 编写,不需要任何外部库,除了可选的绘图支持。

  • CLNUM 的 Python 绑定: 一个库,它提供精确的有理数和任意精度的浮点数,比 Python 标准库中的 Decimal.py 模块快几个数量级(并且功能更强大)。从同一个网站,ratfun 模块提供有理函数近似,而 rpncalc 是一个完整的基于 Python 的 RPN 交互式计算器。

  • Kayali: 一个基于 Qt 的计算机代数系统 (CAS),用 Python 编写。它本质上是 Maxima 和 Gnuplot 的前端 GUI。

量子力学

  • QuTiP: 一个用于模拟开放和封闭量子系统动力学的数值框架。

  • QNET: 一个用于帮助设计和分析光子电路模型的软件包。

  • PyQuante: 一套用于开发量子化学方法的程序。

  • QmeQ: 用于计算通过量子点器件传输的软件包。

其他

  • 这些只是其他对科学家可能非常有用的链接,但我不知道如何对其进行分类,或者我不想为其创建一个单链接类别。

  • IDL 到 Numeric/numarray 映射: IDL 和 numarray 之间的映射总结。大多数映射也适用于 Numeric。

  • Pybliographer: 用于管理参考文献数据库的工具。它可用于搜索、编辑、重新格式化等。事实上,它是一个简单的框架,提供易于使用的 Python 类和函数,因此可以扩展到多种用途(根据参考文献搜索生成 HTML 页面等)。除了脚本环境之外,还提供了一个图形化的 Gnome 界面。它提供了强大的编辑功能、一个不错的层次化搜索机制、直接将参考文献插入到 LyXKile 中、直接查询 Medline 等等。它目前支持以下文件格式:BibTeX、ISI、Medline、Ovid、Refer。

  • Vision Egg: 一种强大、灵活且免费的方式,用于为视觉研究实验生成刺激。

  • Easyleed: 一种用于自动从凝聚态物理学中常用的低能电子衍射实验中提取强度-能量谱的工具。

  • PsychoPy: 一个用于视觉研究实验(以及数据分析)的免费软件库,重点关注心理物理学。

  • PyEPL: Python 实验编程库。一个免费的库,用于创建从简单的刺激显示和响应记录(包括音频)到创建交互式虚拟现实环境的实验。

  • 模块依赖关系图: 一些将 modulefinder.py 粘合到 graphviz 中的脚本,生成足够漂亮的导入依赖关系图片,可用于海报,并包含足够的信息,成为理解物理依赖关系过程的核心部分。

  • 数据处理模块化工具包 (MDP): 一个库,用于实现数据处理元素(节点)并将它们组合成数据处理序列(流)。已经实现的节点包括主成分分析 (PCA)、独立成分分析 (ICA)、慢特征分析 (SFA) 和生长神经气体。

  • FiPy: FiPy 是一个面向对象的偏微分方程 (PDE) 求解器,用 Python 编写,基于标准有限体积 (FV) 方法。该框架是在冶金部门和理论与计算材料科学中心 (CTCMS) 中开发的,位于国家标准与技术研究院 (NIST) 的材料测量实验室 (MML) 中。

  • SfePy: SfePy 是一款用于通过有限元方法在 2D 和 3D 中求解耦合偏微分方程 (PDE) 系统的软件。它既可以被视为一个黑盒 PDE 求解器,也可以被视为一个 Python 包,可用于构建自定义应用程序。时间消耗部分是用 C/Cython 实现的。

  • Hermes: Hermes 是一个由内华达大学里诺分校 hp-FEM 小组周围的开源社区开发的用于快速原型化自适应 FEM 和 hp-FEM 求解器的免费 C++/Python 库。

  • FEval: FEval 用于在许多有限元文件格式之间进行转换。其主要功能是在物理域中提取模型数据,例如计算流线。

  • peak-o-mat: peak-o-mat 是一个面向光谱学家的曲线拟合程序。它专门为从可见光学实验中批量清理、转换和拟合光谱而设计,如果您面临大量类似的光谱。

  • SciPyAmazonAmi: 在此处添加您希望安装在公开可用的 Amazon EC2 镜像上的软件。

  • xarray: 一个允许对多维数组中的任何维度进行标记的库。

  • PyCVF: 一个计算机视觉和视频挖掘框架。

  • CNEMLIB : 提供了在 2D 和 3D 中实现 CNEM 的方法。CNEM 是自然元方法对非凸域的推广。它是一种类似于 FEM 的方法。CNEMLIB 的主要功能是:i) 使用自然邻近插值器 (Sibson) 在 2D 中对分布在凸或非凸域上的散乱数据进行插值,以及使用自然邻近插值器 (Sibson 或 Laplace) 或线性有限元插值器在 3D 中对 Delaunay 镶嵌进行插值。ii) 一个梯度矩阵算子,它允许计算散乱数据的节点梯度(使用的方法基于稳定节点积分,SCNI)。iii) 一种通用的组装工具,用于构建与弱公式相关的组装矩阵(热问题、力学问题、流体力学问题、通用问题),与有限元方法 (FEM) 中使用的类似。

  • aestimo: 使用一维自洽薛定谔-泊松求解器对量子阱半导体异质结构进行建模。包含射击法求解器和有限元 k.p 求解器。

  • plotexplorer_gui: 一个 wxpython/matplotlib 脚本,用于通过可排序复选框列表绘制和对比一组图形。

  • VibrationTesting: 用于线性振动系统信号处理、模型求解、模型操作以及系统和模态识别的工具。

  • Vibration_Toolbox: 主要用于演示振动分析和现象的教育工具集。您可能会发现它们对应用有用,但这不是该模块的意图。

  • Colour: 一个实现了大量颜色理论转换和算法的软件包。

  • PyBaMM: 快速灵活的基于物理的电池模型。