SciPy es una colección de algoritmos matemáticos y funciones de conveniencia construidas en la extensión Numpy de Python. Agrega un poder significativo a la sesión interactiva de Python al proporcionarle al usuario comandos y clases de alto nivel para manipular y visualizar datos. Con SciPy, una sesión interactiva de Python se convierte en un entorno de procesamiento de datos y prototipos de sistemas que compite con sistemas como MATLAB, IDL, Octave, R-Lab y SciLab.
El beneficio adicional de basar SciPy en Python es que también hace que un potente lenguaje de programación esté disponible para su uso en el desarrollo de programas sofisticados y aplicaciones especializadas. Las aplicaciones científicas que utilizan SciPy se benefician del desarrollo de módulos adicionales en numerosos nichos del panorama de software por parte de desarrolladores de todo el mundo. Todo desde programación paralela hasta subrutinas y clases de base de datos y web se ha puesto a disposición del programador de Python. Todo este poder está disponible además de las bibliotecas matemáticas en SciPy.
Versión | Fecha de lanzamiento |
---|---|
0.19.0 | 2017-03-09 |
0.18.0 | 2016-07-25 |
0.17.0 | 2016-01-22 |
0.16.1 | 2015-10-24 |
0.16.0 | 2015-07-23 |
0.16b2 | 2015-05-24 |
0.16b1 | 2015-05-12 |
0.15.1 | 2015-01-18 |
0.15.0 | 2015-01-11 |
0.14.1 | 2014-12-30 |
0.14.1rc1 | 2014-12-14 |
0.14.0 | 2014-05-03 |
0.14.0rc2 | 2014-04-23 |
0.14.0rc1 | 2014-04-02 |
0.14.0b1 | 2014-03-15 |
0.13.3 | 2014-02-04 |
0.13.2 | 2013-12-07 |
0.13.1 | 2013-11-16 |
0.13.0 | 2013-10-19 |
0.13.0rc1 | 2013-10-10 |
0.12.1 | 2013-10-08 |
0.12.0 | 2013-04-06 |
0.12.0rc1 | 2013-03-29 |
0.12.0b1 | 2013-02-16 |
0.11.0 | 2012-09-24 |
0.11.0rc2 | 2012-08-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 |
Cree un archivo (por ejemplo, hello_world.py) en un editor de texto o en un editor de python si tiene uno instalado ( elija uno si no lo tiene : SublimeText, Eclipse, NetBeans, SciTe ... ¡hay muchos!)
hwld = 'Hello world'
print(hwld)
Tenga en cuenta que las variables de Python no necesitan ser declaradas explícitamente; la declaración ocurre cuando asigna un valor con el signo igual (=) a una variable.
El resultado de las dos líneas de código anteriores es que se mostrará la cadena "Hello World".
Las funciones escritas en Python también se pueden usar en iPython.
En este caso, puede usar ejecutar el archivo guardado 'hello_world.py' en IPython así:
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
Si lo desea, puede usar dos variables, por ejemplo, una para hola y otra para world y concatenarlas usando el signo más (+):
h = 'Hello '
w = "world!'
print(h+w)
#this will also output Hello World, only this time with an exclamation mark..
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 proporciona funciones básicas de manipulación de imágenes. Estas incluyen funciones para leer imágenes del disco en matrices numpy, para escribir matrices numpy en el disco como imágenes y para redimensionar imágenes.
En el siguiente código, solo se usa una imagen. Es teñido, redimensionado y guardado. Las imágenes originales y resultantes se muestran a continuación:
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)
Scipy contiene partes escritas en C, C ++ y Fortran que deben compilarse antes de su uso. Por lo tanto, asegúrese de que estén instalados los compiladores necesarios y los encabezados de desarrollo de Python. Al haber compilado el código también significa que Scipy necesita pasos adicionales para importar desde las fuentes de desarrollo, que se explican a continuación.
Coloque una copia del repositorio principal de Scipy en Github en su propia cuenta, luego cree su repositorio local a través de:
$ git clone git@github.com:YOURUSERNAME/scipy.git scipy
$ cd scipy
$ git remote add upstream git://github.com/scipy/scipy.git
Para crear la versión de desarrollo de Scipy y ejecutar pruebas, genere shells interactivos con las rutas de importación de Python configuradas correctamente, etc. Haz una de las siguientes:
$ 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
Esto construye primero a Scipy, por lo que puede llevar un tiempo la primera vez. Al especificar -n
se ejecutarán las pruebas en la versión de Scipy (si existe) que se encuentra en el PYTHONPATH actual.
El uso de runtests.py es el enfoque recomendado para ejecutar pruebas. También hay una serie de alternativas a la misma, por ejemplo, la compilación in situ o la instalación en un entorno virtual. Algunas pruebas son muy lentas y deben habilitarse por separado.
Ubuntu y Debian
Ejecutar comando
sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
Las versiones en Ubuntu 12.10 o más nuevas y Debian 7.0 o más nuevas cumplen con la especificación actual de la pila SciPy. Los usuarios también pueden querer agregar el repositorio de NeuroDebian para paquetes adicionales de SciPy.
El primer lanzamiento de SciPy, vsn 0.10, se lanzó el 14 de agosto de 2001. El lanzamiento actual de SciPy (correcto el 26 de julio de 2016) es v 0.17 (estable) con v .18 próximamente. Los detalles de los lanzamientos anteriores se enumeran aquí.