Looking for scipy Answers? Try Ask4KnowledgeBase
Looking for scipy Keywords? Try Ask4Keywords

scipyEmpezando con scipy


Observaciones

Acerca de Scipy

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.

Versiones

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

Hola mundo básico

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..
 

Convierte una matriz dispersa en una matriz densa usando 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]])
 

Manipulación de imágenes usando Scipy (tamaño de imagen básico)

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)
 

original redimensionado_tintado

Referencia

Instalación o configuración

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.

Enlace a API

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.

Versiones

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í.