scipy开始使用scipy


备注

关于Scipy

SciPy是基于Python的Numpy扩展构建的数学算法和便利函数的集合。它通过为用户提供用于操作和可视化数据的高级命令和类,为交互式Python会话增加了强大的功能。通过SciPy,交互式Python会话成为可与MATLAB,IDL,Octave,R-Lab和SciLab等系统相媲美的数据处理和系统原型设计环境。

将SciPy基于Python的额外好处是,这也使得强大的编程语言可用于开发复杂的程序和专用应用程序。使用SciPy的科学应用程序受益于全球开发人员在软件领域的众多领域中开发其他模块。从并行编程到Web和基于数据的子例程和类的所有内容都可供Python程序员使用。除了SciPy中的数学库之外,所有这些功能都可用。

版本

发布日期
0.19.0 2017年3月9日
0.18.0 2016年7月25日
0.17.0或更新版本 2016年1月22日
0.16.1 2015年10月24日
0.16.0 学习网站
0.16b2 2015年5月24日
0.16b1 2015年5月12日
0.15.1 2015年1月18日
0.15.0 2015年1月11日
0.14.1 情节中字
0.14.1rc1 情节中字
0.14.0 2014年5月3日
0.14.0rc2 2014年4月23日
0.14.0rc1 2014年4月2日
0.14.0b1 2014-03-15
0.13.3 2014年2月4日
0.13.2 2013年12月7日
0.13.1 二○一三年十一月十六日
0.13.0 2013年10月19日
0.13.0rc1 二〇一三年十月一十日
0.12.1 2013年10月8日
0.12.0 2013年4月6日
0.12.0rc1 2013年3月29日
0.12.0b1 2013年2月16日
0.11.0 2012年9月24日
0.11.0rc2 2012年8月12日
0.11.0rc1 2012-07-17
0.11.0b1 2012-06-12
0.10.1 2012-02-26
0.10.1rc2 2012-02-19
0.10.1rc1 2012-02-10
0.10.0 2011-11-13
0.10.0rc1 2011-11-03
0.10.0b2 2011-09-16
0.10.0b1 2011-09-11
0.9.0 2011-02-27

基本的Hello World

如果安装了文件编辑器或python编辑器,则在文本编辑器或python编辑器中创建一个文件(例如hello_world.py)( 如果不安装,请选择一个文件 - SublimeText,Eclipse,NetBeans,SciTe ......有很多!)

hwld = 'Hello world'
print(hwld)
 

请注意,不需要显式声明python变量;当您将具有等号(=)的值赋给变量时,会发生声明。

上面两行代码的输出是将显示字符串“Hello World”。

用Python编写的函数也可以在iPython中使用。

在这种情况下,你可以使用在IPython中运行你保存的文件'hello_world.py',如下所示:

In [1]: %run hello_world.py  
#run file to get output below
Hello world
In [2]: wld   
#show what value of wld var is
Out[2]: 'Hello world'
In [3]: %whowld  
#display info on variable wld (name/type/value)

Variable     Type     Data/Info
----------------------------
wld         str     Hello world
 

如果您希望可以使用两个变量,例如一个用于hello,一个用于world,并使用加号(+)连接它们:

 h = 'Hello '
 w = "world!'
 print(h+w)

 #this will also output Hello World, only this time with an exclamation mark..
 

使用SciPy将稀疏矩阵转换为密集矩阵

 from scipy.sparse import csr_matrix
 A = csr_matrix([[1,0,2],[0,3,0]])
 >>>A
 <2x3 sparse matrix of type '<type 'numpy.int64'>'
    with 3 stored elements in Compressed Sparse Row format>
 >>> A.todense()
   matrix([[1, 0, 2],
           [0, 3, 0]])
 >>> A.toarray()
      array([[1, 0, 2],
            [0, 3, 0]])
 

使用Scipy进行图像处理(基本图像调整大小)

SciPy提供基本的图像处理功能。这些功能包括将图像从磁盘读取到numpy数组,将numpy数组作为图像写入磁盘以及调整图像大小的功能。

在以下代码中,仅使用一个图像。它被着色,调整大小并保存。原始图像和生成的图像如下所示:

import numpy as np  //scipy is numpy-dependent

from scipy.misc import imread, imsave, imresize   //image resizing functions

# Read an JPEG image into a numpy array
img = imread('assets/cat.jpg')
print img.dtype, img.shape  # Prints "uint8 (400, 248, 3)"

# We can tint the image by scaling each of the color channels
# by a different scalar constant. The image has shape (400, 248, 3);
# we multiply it by the array [1, 0.95, 0.9] of shape (3,);
# numpy broadcasting means that this leaves the red channel unchanged,
# and multiplies the green and blue channels by 0.95 and 0.9
# respectively.
img_tinted = img * [1, 0.95, 0.9]

# Resize the tinted image to be 300 by 300 pixels.
img_tinted = imresize(img_tinted, (300, 300))

# Write the tinted image back to disk
imsave('assets/cat_tinted.jpg', img_tinted)
 

原版的 resized_tinted

参考

安装或设置

Scipy包含用C,C ++和Fortran编写的部分,需要在使用前进行编译。因此,请确保安装了必要的编译器和Python开发头文件。编译代码也意味着Scipy需要从开发源导入其他步骤,如下所述。

将Github中主要Scipy存储库的副本分成您自己的帐户,然后通过以下方式创建本地存储库:

$ git clone git@github.com:YOURUSERNAME/scipy.git scipy
$ cd scipy
$ git remote add upstream git://github.com/scipy/scipy.git
 

要构建Scipy的开发版本并运行测试,请在正确设置Python导入路径的情况下生成交互式shell,依此类推。执行以下操作之一:

$ python runtests.py -v
$ python runtests.py -v -s optimize
$ python runtests.py -v -t scipy/special/tests/test_basic.py:test_xlogy
$ python runtests.py --ipython
$ python runtests.py --python somescript.py
$ python runtests.py --bench
 

这首先构建Scipy,因此第一次可能需要一段时间。指定-n 将针对当前PYTHONPATH上找到的Scipy版本(如果有)运行测试。

使用runtests.py是运行测试的推荐方法。还有许多替代方案,例如就地构建或安装到虚拟环境。有些测试非常慢,需要单独启用。

链接到API

Ubuntu和Debian

运行命令

sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
 

Ubuntu 12.10或更高版本以及Debian 7.0或更高版本中的版本符合当前的SciPy堆栈规范。用户可能还想为额外的SciPy包添加NeuroDebian存储库。

版本

SciPy的第一个版本,vsn 0.10,于2001年8月14日发布。目前SciPy的发布(2016年7月26日正确)为0.17(稳定),即将推出v.18。 此处列出了以前版本的详细信息