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 …
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.
Veamos cuales son las …
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 …
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.
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.
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.
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:
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
):
Esto puede ser útil para scripts propios, demos, formación,..., pero os lo desaconsejo en código en producción o a compartir ;-)
Saludos.
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.]
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 …