Manejar dependencias y entornos de desarrollo en Python

Por Daniel Rodriguez

a.k.a. pip, conda, pipenv, pyenv, y mas! ¿Qué uso?

Paquetes de Python, los hay para todos los gustos, muchas industrias (web, ciencia, datos y más), con buen soporte tanto de la comunidad como por empresas grandes en cada sector y en general te permiten resolver muchos problemas rápidamente y moverte al siguiente.

Manejar estos paquetes y dependencias es parte natural de un proyecto de software y como es de esperarse en una comunidad tan grande y variada como lo es la de Python no existe solo una solución sino al contrario muchas (¡lo cual es bueno!) que se adaptan a diferentes necesidades de diferentes usuarios.

Tantas opciones también pueden generar confusión al momento de elegir qué herramientas usar y aprender. Para la muestra un gran comic de XKCD que muestra lo que puede pasar.

¡Ayuda!

Veamos cuales son las …

Curso de datos de Manu Garrido: Así se hizo

Por kiario

Hoy hablamos entre pybonaccis para saber como, nuestro sospechoso habitual, Manu Garrido, ha ideado su curso sobre ciencia de datos, disponible para todos en Udemy.

Manu ha creado un cupón de descuento del 90% para todos los lectores de pybonacci.

La idea de la entrada de hoy no es hablar del curso, el curso habla por si mismo, sino saber un poco más sobre lo que hay detrás de un curso tan elaborado como este.

KC: Manu, ¿cuéntanos tus motivaciones para meterte en semejante embrollo, hacer un curso en vídeo, con 23 horas de vídeos, y en español, limitando considerablemente la cantidad de público?

MG: Bueno, estuve unos años viviendo en Nueva York, y allí fue donde aprendí sobre este mundo tan apasionante. Al volver a España, me di cuenta de que el nivel de conocimiento sobre Data Science estaba …

Performance: Pandas vs NumPy (vs Bottleneck)

Por Maximiliano Greco

Hace varias semanas salió un proyecto muy interesante en el que se compara la performance de Pandas con NumPy. Bien, dado que uso Pandas y NumPy a diario no me costó demasiado encontrar algunas cosas (quizá algo difusas) que estarían bien comentar o matizar. Sobre todo cuando vemos comparaciones de este estilo, ya que nos podemos quedar con alguna que otra idea errónea.

A continuación voy a tratar de explicar cómo funciona Pandas y NumPy cuando hacemos llamadas del estilo:

In [0]: d = pd.DataFrame(...)
In [1]: d.sum()
In [2]: np.sum(d)

De hecho, aunque nos pueda parecer trivial, cuando buscamos la máxima performance hacerlo de una u otra forma toma especial relevancia. Como podéis intuir, no es lo mismo hacer d.sum() que np.sum(d). Otro apunte intersante, para los que no lo sabéis, los cálculos en Pandas se apoyan en NumPy, pero también en bottleneck (y en el futuro quizá otras librerías), por ese motivo lo incluyo en esta comparativa, lo veremos con más detalle.

¿Cómo crear un mapa interactivo con Folium?

Por kiario

En esta entrada voy a describir el proceso usado para crear https://kikocorreoso.github.io/datos_aemet/ con la ayuda de la librería Folium.

¿Qué es Folium?

Folium es una librería Python que permite crear mapas interactivos usando Leaflet.js. Lo que hace, de forma elegante, es crear código javascript que usa la maravillosa librería de mapas interactivos leaflet.

¿Crear el mapa?

En la rama gh-pages del repositorio git datos_aemet en github (https://github.com/kikocorreoso/datos_aemet/tree/gh-pages) hay una serie de ficheros. Los ficheros index.html, map.html y readme.html los generaremos a partir de los ficheros:

  • custom.css: Algo de css para que la página cuadre. Por debajo usa, además, bootstrap.
  • src/create_base_map.py: Esta es la madre del cordero y lo que vamos a comentar.
  • src/template.html: Aquí tenemos la estructura principal del HTML usado …

Microentradas: Unicode/látex en la consola IPython/notebook Jupyter

Este es un TIL que vi el otro día. Lo dejo aquí por si otros no lo sabían y les resulta útil.

En la consola de IPython o en el notebook Jupyter podéis usar unicode escribiendo símbolos látex.

Por ejemplo, si escribes lo siguiente (en la consola o en una celda del notebook):

In [1]: \alpha

y pulsáis después la tecla tab veréis que se transforma a su símbolo látex y lo podéis usar fácilmente en vuestro código.

El resultado sería algo como lo siguiente (antes y después de pulsar la tecla tab):

  • Antes:

  • Después:

Esto puede ser útil para scripts propios, demos, formación,..., pero os lo desaconsejo en código en producción o a compartir ;-)

Saludos.

Instalando PostgreSQL en local en windows o linux usando conda

Para el que no lo sepa, podéis instalar PostgreSQL usando conda \o/

Vamos a hacer un tutorial paso a paso para poder instalarlo todo y dejarlo listo para trabajar desde Python de forma sencilla.

[A lo largo de todo el tutorial se indica si el código a usar es para windows o para linux. Si no se indica nada el código debería ser válido en ambos sistemas operativos.]

1. Creamos un entorno virtual usando conda e instalamos PostgreSQL.

Este paso es sencillo. Solo necesitáis tener instalado conda en vuestro equipo y una conexión a internet. Si no tenéis conda instalado podéis ir a la sección de enlaces, más abajo, para visitar la documentación de conda donde os indica como instalarlo. Con conda instalado, podemos añadir el canal de conda-forge (básico para poder extender la cantidad de paquetes disponibles además de …

Donaciones gracias a Packtpub

Go to english version

Hola a todos.

Durante la semana del 5 al 11 de junio (desde el próximo lunes al próximo domingo), desde PacktPub, nos han propuesto usar un enlace de afiliación que se usará para que donen 1\$ (hasta 1000\$) a la organización sin ánimo de lucro que les indiquemos.

¿Cómo funcionará la campaña y cómo nos podéis ayudar?

  • Vamos a dejar un tweet para qué votéis a qué organización sin ánimo de lucro queréis hacer la donación entre las tres siguientes. Esa votación estará abierta hasta el miércoles, (daos prisa), y en cuanto se cierre la votación le indicaremos a PacktPub la organización seleccionada:
  • Durante la semana que viene vamos a twittear sobre los libros gratuitos de PackPub usando el link de afiliación siguiente: https://www.packtpub.com/packt/offers …

Como hacer un mapa muy bonito de España en ggplot2

Por Manuel Garrido

(Este post apareció originalmente en mi blog).

Hace unas semanas leí un artículo en el cual Timo Grossenbacher mostraba como consiguió hacer, en mi opinión, uno de los mapas más bonitos que he visto nunca. Timo empleó la que es, en mi opinión, una de las librerias más expresivas y bellas que hay para hacer gráficos, ggplot2. La versión original de ggplot2 es para R, pero existe una versión de python no exhaustiva gracias a la buena gente de Yhat.

Asi que por supuesto, tenía que replicarlo.

Antes que nada, aquí está el mapa.

Mapilla

El código empleado para hacer el mapa lo podeis descargar en github. He compartido varias versiones del mapa para que se pueda observar como los diferentes cambios en las escalas afectan a la visualización.

Código.

Para empezar, importamos las librerías necesarias:

setwd("/DIRECTORIO_DE_TRABAJO/")

if (!require(rgdal …

Manejo de atributos mediante propiedades.

En Python, cuando creamos una clase, definimos una serie de atributos (que indicarán su estado) y de métodos (que marcarán su comportamiento). El acceso a ambos se realiza de manera sencilla mediante el operador punto. Un ejemplo de ello (como nota decir que todo el código mostrado en esta entrada está escrito en Python 3 sobre el IDE PyScripter)  es el siguiente:

class MiClase:
    def __init__(self, midato):
        self.dato = midato
    def cuadrado(self):
        return self.dato ** 2
a = MiClase(12.72)
print("El cuadrado es:", a.cuadrado())
a.dato = 7.72
print("El cuadrado es:", a.cuadrado())

La salida sería:

>>> 
El cuadrado es: 161.79840000000002
El cuadrado es: 59.5984
>>>

Para ejemplos sencillos podría ser suficiente actuar de esta manera, pero en otros momentos necesitaremos más versatilidad. Imaginemos que queremos validar los atributos con una determinada condición. En nuestro …

Revisión del libro “Python 3, Curso Práctico” de Alberto Cuevas

Por Kiko Correoso

Nos han pedido una revisión de un nuevo libro sobre Python en español. El libro se titula 'Python 3, Curso Práctico' y lo ha escrito Alberto Cuevas Álvarez. Si seguís leyendo podréis ver cómo ganar una copia en papel del mismo ;-D

Primero de todo, algunas características del libro:

  • Título: Python 3, Curso Práctico.
  • Autor: Alberto Cuevas Álvarez
  • Año de edición: 2016
  • Nº páginas: 560
  • ISBN: 978-84-9964-658-9
  • Editorial: RA-MA EDITORIAL
  • Encuadernación: Rústica
  • Idioma: Español (de España).
  • Versión de Python usada en el libro: 3.3
  • Link: http://www.ra-ma.es/libros/PYTHON-3-CURSO-PRACTICO/94627/978-84-9964-658-9
  • Precio: 31.90 € para la versión en papel.
  • Versión electrónica: No disponible de momento.

Le hemos pedido al autor que nos defina su intención al escribir el libro y esta es la frase resumen que nos ha enviado:

"Mi intención a la hora de realizar el …