arrays

¿Cómo trabajar con arrays de binarios en Python?

Esta semana vamos con una pregunta de Gonzalo, que nos dice por email: Saludos. Últimamente he estado trabajado en python y me gusta mucho. En estos momentos estoy haciendo un algoritmo genético con codificación en numeros binarios utilizando bitset de C++. ¿Tendran información acerca de como trabajar con cadenas de… Leer más »¿Cómo trabajar con arrays de binarios en Python?

¿Por qué usar netCDF?

Primero de todo empezaremos por el principio
¿Qué es netCDF?
Es un conjunto de librerías (o bibliotecas) y un formato de datos que son:

  • auto-descriptivo ya que incluye información acerca de los datos contenidos en el fichero netCDF
  • independiente de la plataforma
  • podemos acceder a un subconjunto de datos del fichero de forma eficiente
  • permite agregar datos a un fichero ya existente sin necesidad de copiar los datos ya existentes en el fichero
  • puede ser fácilmente compartido ya que una persona puede escribir mientras varias personas pueden leer el mismo fichero.
  • puede ser archivado ya que las versiones previas siempre estarán soportadas por las nuevas versiones

Su actual versión es la 4 y permite leer los ficheros creados con versiones anteriores de netCDF, como se ha comentado anteriormente.
Además es compatible con un subconjunto de HDF5 (del que hablaremos otro día, Francesc, ¿te animas como firma invitada?) pudiendo leer gran cantidad de ficheros en formato HDF5 pero no todos. HDF5 es capaz de abrir cualquier fichero creado con netCDF-4 (que es el modelo mejorado de datos que veremos a continuación). Es decir, un fichero netCDF-4 es un fichero HDF5 pero no a la inversa.
Es además un estándar para varias instituciones como la Open Geospatial Consortium.
¿Cuál es el formato de un fichero netCDF?
El formato no es único, existe un modelo clásico, más sencillo, y el modelo mejorado (llamado netCDF4), más complejo y completo.
Leer más »¿Por qué usar netCDF?

Funciones definidas a trozos con arrays de NumPy

Introducción

Hoy vamos a ver cómo crear funciones definidas a trozos que manejen arrays de NumPy. Seguro que todos conocéis este tipo de funciones, pero a la hora de crearlas en NumPy me encontré con un par de obstáculos en el camino que me gustaría compartir con vosotros.
Como ya sabéis, las funciones definidas a trozos son ubicuas en matemáticas y se utilizan cuando queremos ensamblar varias funciones en una sola. Vamos a ver cómo construirlas en Python utilizando la función numpy.piecewise y vamos a revisar un par de conceptos sobre comparación de arrays e indexación avanzada utilizando valores booleanos. Esto último suena un poco a magia negra pero ya veréis cómo no es para tanto 😛
En esta entrada se ha usado python 2.7.3 y numpy 1.6.2.

Funciones definidas a trozos

La función de NumPy numpy.piecewise acepta, como mínimo, tres argumentos:

  • un array de valores en los que evaluar la función x,
  • una lista de arrays booleanos condlist que son los «trozos» en los que se divide la función, que deben tener la misma forma que x,
  • y una lista de funciones funclist que se corresponden con cada uno de los trozos.

Leer más »Funciones definidas a trozos con arrays de NumPy