Creación de vídeos al vuelo en el notebook

TOLoNtería de Navidad

Por Kiko Correoso

Explicando la explicabilidad

Bienvenidos a Pybonacci 3.0

Por Kiko Correoso

Inauguramos hoy la nueva versión de Pybonacci, la tercera ya, después de años de camino de amor y odio con wordpress. No vamos a hablar mal de wordpress. Nos ha permitido llegar hasta vosotros durante todos estos años pero ya no encajaba con nuestra forma de trabajar en el 2018. Es por ello que en esta nueva etapa vamos a usar herramientas que nos permitan poder crear contenido de forma más fácil y que el paso desde un Jupyter notebook de nuestro PC a la pybonaccisfera sea lo más rápida y automática posible y que sea más fácil para cualquiera de vosotros poder colaborar en compartir el conocimiento de forma libre y accesible.

En esta entrada vamos a hacer un repaso a lo que hemos hecho durante estos años, lo que hemos conseguido, cómo lo hemos conseguido, cómo lo queremos …

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:

console1

  • Después:

console2

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 …