返回介绍

软件包的安装和介绍

发布于 2025-02-25 22:46:16 字数 7205 浏览 0 评论 0 收藏 0

安装软件包

安装

和 Matlab 不同,Python 的科学软件包由众多的社区维护和发布,因此要一一将其收集齐安装到你的电脑里是一件很费时间的事情。幸好这些工作已经有人帮我们整理好了。只需要下载一个文件,一次安装就能拥有众多的函数库可供使用。

这里介绍两个科学计算 Python 合集的下载和安装过程。

Python(x,y)

http://www.pythonxy.com 发布的 Python(x,y) 将近 400M,收集了众多的函数库以及文档、教程。并且提供了一个方便的启动界面:

Python(x,y) 的启动画面

  • Shortcuts:启动各种应用程序
  • Documentation:打开各个软件包的文档
  • About:查看所安装的程序库的版本信息

Enthought Python Distribution (EPD)

下载地址: http://www.enthought.com/products/getepd.php EPD 是一个商业的 Python 发行版本,同样包括了众多的科学软件包,而且作为教学使用是免费的,大小约为 250M。

工具

安装好了之后先看看下面这些常用的工具,在以后的学习过程中会经常用到。

iPython

ipython 是一个 python 的交互式 shell,比默认的 python shell 好用得多,支持变量自动补全,自动缩近,支持 bash shell 命令,内置了许多很有用的功能和函数。

如果你安装了 Python(x,y) 的话,可以从 Python(x,y) 的启动界面中运行 iPython。

通过 Python(x,y) Home 启动 IPython 的各种选项

从下拉选择框中选择你想运行的 iPython,然后点击后面的①或者②按钮启动 iPython。下拉选择框中的 IPython(x,y)、IPython(Qt)、IPython(wxPython) 和 IPython(mlab) 等几个选项都是启动 iPython,只不过它们的启动方式不同。而 Python 选项则只启动单纯的 Python Shell。

选项参数含义
IPython(x,y)-pylab -p xy
IPython(Qt)-q4thread
IPython(wxPython)-wthread
IPython(mlab)-wthread

点击①按钮将用一个叫做 Console 的软件启动 Shell,此软件在窗口中显示 Shell,并且支持多标签。点击②按钮用 Windows 自带的 Cmd 启动 Shell。

如果你用 python(x,y) 的启动界面通过 IPython(x,y) 运行 iPython 的话,那么在 iPython 打开之后自动运行一个 default.py 脚本。此脚本缺省执行以下的函数库导入:

import numpy
import scipy
from numpy import *

为了和 numpy, scipy 等社区的推荐的标准导入方式一致,请点击按钮③,然后在打开的文件夹中添加一个名为 numpy.py 的文件,编辑此文件,添加以下几行推荐的导入:

import numpy as np
import scipy as sp
import pylab as pl

此后运行 IPython(x,y) 的时候请记着要选择 numpy.py 为启动脚本。

如果要使用 pylab,TraitsUI 等在 shell 中和图形界面进行交互的话,需要选择带-wthread 参数的选项(-pylab 也可以)。 下图 是一个用 pylab 绘制 sin 波形图的例子:

使用 IPython 交互式地绘制正弦波

在 iPython 的交互中可以方便地使用如下功能:

  • 自动补全:输入一部分文字之后按 tab 键,iPython 将列出所有以输入补全信息。
  • 查看文档:输入需要查看文档的函数,然后在后面添加?或者??,?表示查看函数的文档,??表示查看其 Python 源代码,如果函数不是 Python 写的,则查看不到。
  • 执行 cmd 命令:ls-列出当前目录下的所有文件,cd-显示或者更改当前路径
  • 执行 Python 程序:用 run * .py 命令,在 IPython 中运行指定的 py 文件。如果加-i 参数的话,则在 IPython 的命名空间中执行。也就是说在文件中没有定义名称会直接使用在 IPython 中的。
  • 执行剪切板中的程序:你可以从本书中复制代码,然后在 IPython 命令窗口中执行 paste 命令运行复制的代码。如果执行 paste foo 的话,将把剪切板中的内容复制到变量 foo 中。变量 foo 是一个 IPython 提供的 SList 列表类型,它提供了很多操作所复制的内容的方法。
  • 执行系统命令:在要执行的系统名字之前添加一个!号。例如执行!test.py 的话,那么将让系统运行 test.py 文件。和 run 命令不同的是,test.py 完全在另外的进程中运行。

spyder

spyder 是 Python(x,y) 的作者为它开发的一个简单的 Python 开发环境。和其它 Python IDE 相比它最大的优点就是模仿 MATLAB 的 workspace 功能,可以很方便地观察和修改数组的值。

spyder 的项目地址: http://code.google.com/p/spyderlib

下图 是 spyder 的界面截图:

在 Spyder 中执行图像处理的程序

下图 是 Workspace 的截图,列出了其中的变量名以及类型和大小等信息。鼠标右键可以显示出操作指定变量的菜单:

Warning

Workspace 缺省配置不显示大写字母开头的变量,可以在 Workspace 菜单中修改这项配置。

使用 Workspace 查看变量内容

选择 Plot 选项,将出现如 下图 所示的绘图窗口:

在 Workspace 中将数组绘制成曲线图

如果 Edit 选项的话,将出现如 下图 所示的编辑器对数组进行操作:

使用数组编辑器查看和编辑数组内容

函数库介绍

Python 的科学计算方面的内容由许多库构成,在基础篇中让我们首先来了解一下编写科学计算软件时经常使用的一些库。

数值计算库

NumPy 为 Python 提供了快速的多维数组处理的能力,而 SciPy 则在 NumPy 基础上添加了众多的科学计算所需的各种工具包,有了这两个库,Python 就有几乎和 Matlab 一样的处理数据和计算的能力了。

NumPy 和 SciPy 官方网址: http://www.scipy.org

NumPy 为 Python 带来了真正的多维数组功能,并且提供了丰富的函数库处理这些数组。它将常用的数学函数都进行数组化,使得这些数学函数能够直接对数组进行操作,将本来需要在 Python 级别进行的循环,放到 C 语言的运算中,明显地提高了程序的运算速度。

SciPy 的核心计算部分都是一些久经考验的 Fortran 数值计算库,例如:

  • 线性代数使用 LAPACK 库
  • 快速傅立叶变换使用 FFTPACK 库
  • 常微分方程求解使用 ODEPACK 库
  • 非线性方程组求解以及最小值求解等使用 MINPACK 库

符号计算库

SymPy 是一套进行符号数学运算的 Python 函数库,虽然它目前还没有到达 1.0 版本,但是已经足够好用,可以帮助我们进行公式推导,进行符号求解。

SymPy 官方网址: http://code.google.com/p/sympy

界面设计

制作界面一直都是一件十分复杂的工作,使用 Traits 库,你将再也不会在界面设计上耗费大量精力,从而能把注意力集中到如何处理数据上去。

Traits 官方网址: http://code.enthought.com/projects/traits

Traits 库分为 Traits 和 TraitsUI 两大部分,Traits 为 Python 添加了类型定义的功能,使用它定义的 traits 属性具有初始化、校验、代理、事件等诸多功能。

TraitsUI 库基于 Traits 库,使用 MVC 结构快速地定义用户界面,在最简单的情况下,你甚至不需要写一句关于界面的代码,就可以通过 traits 属性定义获得一个可以工作的用户界面。使用 TraitsUI 库编写的程序自动支持 wxPython 和 pyQt 两个经典的界面库。

绘图与可视化

Chacomatplotlib 是很优秀的 2D 绘图库,Chaco 库和 Traits 库紧密相连,方便制作动态交互式的图表功能。而 matplotlib 库则能够快速地绘制精美的图表、以多种格式输出,并且带有简单的 3D 绘图的功能。

Chaco 官方网址: http://code.enthought.com/projects/chaco

matplotlib 官方网址: http://matplotlib.sourceforge.net

TVTK 库在标准的 VTK 库之上用 Traits 库进行封装,如果要在 Python 下使用 VTK,用 TVTK 是再好不过的选择。 Mayavi2 则在 TVTK 的基础上再添加了一套面向应用的方便工具,它既可以单独作为 3D 可视化程序使用,也可以快速地嵌入到用户的程序中去。

Mayavi2 官方网址: http://code.enthought.com/projects/mayavi

VTK(Visualization Toolkit)

视觉化工具函式库(VTK, Visualization Toolkit)是一个开放源码,跨平台、支援平行处理(VTK 曾用于处理大小近乎 1 个 Petabyte 的资料,其平台为美国 Los Alamos 国家实验室所有的具 1024 个处理器之大型系统)的图形应用函式库。2005 年实曾被美国陆军研究实验室用于即时模拟俄罗斯制反导弹战车 ZSU23-4 受到平面波攻击的情形,其计算节点高达 2.5 兆个之多。 -- 摘自维基百科

此外,使用 Visual 库能够快速、方便地制作 3D 动画演示,使你的数据结果更有说服力。

Visual 官方网址: http://vpython.org

图像处理和计算机视觉

OpenCV 是由英特尔公司发起并参与开发,以 BSD 许可证授权发行,可以在商业和研究领域中免费使用。OpenCV 可用于开发实时的图像处理、计算机视觉以及模式识别程序。OpenCV 提供的 Python API 方便我们快速实现算法,查看结果并且和其它的库进行数据交换。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文