Numpy

Numpy es una librería en la que se define un tipo de dato que representa matrices multidimensionales, equivalentes a las matrices del R. Además incluye algunas funcionalidades básicas para trabajar con ellas. Numpy es una librería con una amplia tradición en Python, es estable y muy rápida. Se dispone de un buen tutorial de Numpy.

Python en ciencia

Scipy es una librería que provee herramientas matemáticas y algoritmos. Es software libre distribuido bajo la licencia BSD desarrollado por una comunidad de desarrolladores tutelada por Enthought

El objetivo de SciPy es crear un entorno de trabajo similar a Matlab. Scipy se compone de numerosos módulos. El más importante de todos ellos es Numpy ya que es el que proporciona el array multidimensional que todas los otros utilizan como base. Algunos de los módulos de Scipy son:

cluster

hierarchical clustering, vector quantization, K-means

fftpack

Discrete Fourier Transform algorithms

integrate

numerical integration routines

interpolate

interpolation tools

linalg

linear algebra routines

optimize

optimization algorithms including linear programming

signal

signal processing tools

sparse

sparse matrix and related algorithms

spatial

KD-trees, nearest neighbors, distance functions

stats

statistical functions

pandas

pandas es un paquete de Python que proporciona estructuras de datos similares a los dataframes de R. Los principales tipos de datos que pueden representarse con pandas son:

  • Datos tabulares con columnas de tipo heterogéneo con etiquetas en columnas y filas.

  • Time series.

pandas tiene dos tipos de datos principales, Series (1 dimensión) y DataFrame (2 dimensiones). pandas depende de Numpy.

matplotlib

matplotlib es una librería que permite hacer gráficos. Se puede utilizar junto a Numpy o independientemente. Los gráficos pueden ser guardados en ficheros (png, svg, pdf, etc.) o ser utilizados interactivamente. El módulo principal de uso de matplotlib es pyplot. pyplot presenta un interfaz state-machine. Ejemplo:

import matplotlib.pyplot as plt

plt.plot(range(10), range(10))
plt.title("Simple Plot")
plt.show()

Otro interfaz similar es pylab que combina pyplot con numpy.

Además de los tipos de gráficos incluidos directamente en matplotlib hay extensiones que añaden más funcionalidad como:

  • Basemap. Mapas greográficos.

  • Mplot3d: Gráficos 3D.

Rpy

Rpy permite utilizar R desde dentro de Python. Hay dos versiones rpy y rpy2. rpy2 es una reescritura completa de la librería y es la recomendada para iniciar proyectos nuevos.

Tutorial de matplotlib

Algo de nomenclatura:

Figure

Incluye todos los elementos. Puede incluir varios subplots, es decir varios Axes.

Axes

Incluye la mayor parte de los elementos de la figura: Axis, Tick, Line2d, Text, etc. y sitúa el sistema de coordenadas.

Axis

Representa los ejes de la gráfica.

Tick

Marca en uno de los ejes.

pyplot nos permite dibujar gráficas. Cada comando que ejecutamos modifica la figura de forma secuencial:

>>> import matplotlib.pyplot as plt
>>> plt.ylabel('Numeros')
>>> plt.show()

El comando plot dibuja líneas o puntos en Axes. Podemos modificar el formato de las series de datos, talno el color como la forma. Para una lista completa de qué se puede hacer con el comando plot hay que mirar su documentación.

::
>>> plt.plot([1,2,3,4], [1,4,9,16], 'ro')

El formato de las líneas también puede ser modificado:

>>> plt.plot([1, 2, 3, 4], [1, 4, 9, 16], linewidth=2.0)

Disponemos de una lista completa de propiedades de las líneas que pueden ser modificadas en la documentación de Line2D.

También podemos modificar los ejes. Por ejemplo indicando a axis cuales son os xmin, xmax, ymin e ymax:

>>> plt.axis([0, 6, 0, 20])

Para situar texto en las gráficas se utiliza el comando text:

>>> plt.text(2, 3, 'Hola')

matplotlib también nos permite hacer diagramas de barras (bar):

>>> plt.bar([1, 2, 3, 4], [5, -3, 1, 2], width=width)

Resulta muy sencillo también crear histogramas (hist):

>>> samples = [1, 1, 2, 3, 4, 3, 2, 3, 6, 7, 8,]
>>> plt.hist(samples)

Documentación adicional: