Noticiero Python y Datos

Archives
Subscribe

Noticiero Python y Datos

Archive

El noticiero no vuelve, pero Juanlu sí

¡Hola!

Recibes este correo porque eras una de las personas que leía el Noticiero de Python y Datos. Lo primero de todo, c̶ó̶m̶o̶ ̶e̶s̶t̶á̶n̶ ̶l̶o̶s̶ ̶m̶á̶q̶u̶i̶n̶a̶s̶ muchas gracias.

El año pasado se me juntaron demasiadas cosas. El cambio de trabajo me supone ya un esfuerzo mental constante - estoy creciendo mucho a nivel personal y profesional, a costa de más altibajos y desgaste.

Por otro lado, la desaparición de Twitter (ahora X) me robó una fuente de información que utilizaba con frecuencia. Estoy feliz en Mastodon y muchos de mis pythonistas favoritos han dado el salto, pero no todos. No estaba dispuesto a sacrificar mi salud mental por seguir en la red de Musk, si bien encontrar cosas interesantes para el noticiero se me hizo más difícil.

#70
February 17, 2024
Read more

El noticiero vuelve pronto ❤️

Estoy teniendo unas semanas un poco intensas de trabajo y además hay un pequeño problema técnico que tengo que resolver antes de seguir mandando emails, así que la siguiente edición del noticiero se va a demorar un poco. Gracias por la paciencia ❤️

Mientras tanto, que sepas que voy a estar dando un Kedro Tour a partir de la semana que viene. ¿Nos vemos en la PyData de Barcelona, en Python Girona, o en Big Data Mallorca? https://www.linkedin.com/posts/juanluiscanor_kedro-python-datascience-activity-7069967726085046272-a1c9?utm_source=share&utm_medium=member_desktop

Un saludo,

Juanlu

#69
June 2, 2023
Read more

Episodio 77 🐍⚙️

Versiones nuevas de Altair, plotnine, y pandera, codificando variables categóricas de manera sencilla en scikit-learn, trabajando con datasets particionados en Kedro, nos vemos en la PyCon Lituania, y fotitos de la JupyterCon de París.

🚀 ¡Muchas versiones nuevas esta semana!

Se ha publicado Vega-Altair 5.0 (Altair para los amigos), una biblioteca Python para visualización estadística basada en la gramática Vega-Lite, con muchas novedades: soporte para parámetros dinámicos, soporte experimental para el protocolo de intercambio de dataframes `dataframe, y mucho más.

De hecho, en el blog de Liam Brannigan, uno de los divulgadores de Polars más activos, puedes leer cómo utilizar dataframes de Polars con Altair 5.

También tenemos plotnine 0.12.1, una implementación del "Grammar of Graphics" en Python (en otras palabras: "ggplot2 en Python"). Esta versión trae un nuevo gestor de composición (es más fácil evitar que se solapen los objetos), un nuevo método save_helper() que devuelve la figura de matplotlib subyacente, y mucho más.

Y por último, pandera 0.15, que permite definir esquemas de datos para dataframes, trae soporte para pandas 2.0, sintaxis más breve para el tipado de los esquemas, valores por defecto, y mucho más.

💡 Esta semana he descubierto category_encoders, una extensión de scikit-learn para codificar variables categóricas. Creo que era el problema más frecuente entre mis alumnos, ¡y de mucha gente! Los hay supervisados y no supervisados.

También he descubierto kedro-partitioned, una extensión de Kedro para trabajar con datasets compuestos de muchos archivos.

📚 Esta semana no he leído ningún artículo notable, ¡mucha faena!

🛫 La semana que viene estaré en la PyCon Lituania hablando de cómo convertir tus notebooks de Jupyter en código mantenible usando Kedro. ¿Alguien más por allí?

🗼 Esta semana me perdí la JupyterCon en París, ¡por las fotos parece que estuvo espectacular! Mi sueño sería poder tener a Fernando Pérez dando una charla en la PyConES, ojalá se cumpla algún día.


Algunas de estas actualizaciones las he ido publicando en inglés en mi cuenta de Mastodon. ¡Sígueme en el Fediverso!

#68
May 12, 2023
Read more

Episodio 76 🐍⚙️

Edición ultrarrápida de domingo por la tarde: versiones nuevas de numba, statsmodels y geopandas, por qué no usar leyendas en matplotlib, y primeras pruebas con StarCoder.

🚀 Tenemos numba 0.57 (y llvmlite 0.48) con esperadísimo soporte para Python 3.11, soporte para cadenas dinámicas en excepciones, mejor soporte para aritmética de media precisión en CUDA, ¡y mucho más!

También ha salido statsmodels 0.14, con esperadísimo soporte para descomposición multiestacional y más cosas.

Y por último, geopandas 0.13 recién salida del horno (hace apenas unos minutos) incluyendo soporte para reproyectar a WGS-84 al guardar a GeoJSON (como dice el estándar), preparación para Shapely 2.0, y mucho más.

Y como cada primer noticiero de mes, novedades sobre Polars: entre las versiones 0.17.0 y 0.17.12 ha habido unos cuantos nombres de parámetros cambiados, soporte para crear un DataFrame desde un modelo de Pydantic, y muchas mejoras de rendimiento. ¡Esto va a toda velocidad!

📚 Me ha gustado mucho este artículo de Cameron Riddell sobre por qué no usar las leyendas de matplotlib.

#67
May 7, 2023
Read more

Episodio 75 🐍⚙️

Versiones nuevas de CausalNex, Pillow, Ray, y Prefect, dashboards sin backend con stlite y voici, cruzando el antimeridiano sin dramas, y malos tiempos para Binder.

🚀 ¡Fiesta de versiones nuevas esta semana!

Mis compañeros de QuantumBlack han publicado CausalNex 0.12, con nuevas visualizaciones de grafos interactivas basadas en Pyvis.

También ha salido Pillow 9.5, con posibilidad de especificar la resolución en DPI al guardar PDFs, nuevo parámetro corners para redondear las esquinas de las imágenes, modo RGBA para PDFs, y más.

#66
April 29, 2023
Read more

Episodio 74 🐍⚙️

Nuevo modelo masivo de lenguaje abierto, magia prohibida para depurar procesos Python, Shiny para Python, versiones nuevas de MLFlow, PyMC, y neuralforecast, topics de Kafka para series temporales, y estilos cyberpunk para matplotlib.

🦜 Esta semana Stability AI ha lanzado StableLM, un modelo masivo de lenguaje bajo licencia Creative Commons Atribución - Compartir Igual. No es el primer modelo masivo de lenguaje abierto (Alpaca, Dolly, y otros) y tampoco quiero dedicar mucho espacio a estos temas en el noticiero porque los peligros de los loros estocásticos son reales no soy un especialista, pero me ha parecido reseñable por venir de la empresa que creó Stable Diffusion. El modelo está disponible en Hugging Face.

Como ya señaló André Staltz, el "tiempo hasta la alternativa open source" se acorta cada vez más.

🚀 Esta semana ha habido numerosos anuncios y versiones nuevas, ¡intentaré resumir!

Bloomberg ha publicado PyStack, una herramienta que usa "magia prohibida" para inspeccionar la pila de un proceso Python. Puede servir para depurar procesos de larga duración o analizar volcados de memoria (core dumps). Por supuesto, el gran Pablo Galindo está en el ajo. Tienes más información en el anuncio oficial.

El soporte de Shiny para Python ya está disponible de manera general. No faltan las soluciones para crear cuadros de mando (dashboards) en Python, ¡por suerte hay para todos los gustos!

Y finalmente, tenemos versiones nuevas de:

  • MLFlow 2.3, con soporte mejorado para modelos de lenguaje (transformers, langchain, openai).

  • PyMC 5.3, con un nuevo método Model.debug() para ayudar a depurar modelos.

  • neuralforecast 1.5, con métodos jerárquicos y muchos modelos nuevos.

💡 Esta semana he descubierto, gracias a la charla de Javier Blanco en PyData Madrid, quix-streams, una biblioteca Python para facilitar el trabajo con series temporales utilizando Apache Kafka.

#65
April 23, 2023
Read more

Episodio 73 🐍⚙️

🚀 ¡Festival de versiones nuevas esta semana! Empezamos:

La gente maja de Ploomber ha sacado JupySQL 7.0, que incluye una API tipo ggplot para visualizaciones sobre tablas, soporte para MySQL y MariaDB, mejores mensajes de error, y mucho más. Además, Eduardo se lió la manta a la cabeza e implementó resaltado de sintaxis SQL en Jupyter, ¡por fin!

syntax

Por otro lado, Modin 0.20 trae implementaciones de algunas funciones para Dask que ya estaban disponibles con otros motores, y Prefect 2.10 por su parte trae “workers” (que van a sustituir a los “agents”), proyectos para agrupar flujos con sus dependencias, mejoras en la observabilidad a través de eventos, y mucho más.

#64
April 14, 2023
Read more

Episodio 72 🐍⚙️🐼 pandas 2.0

🐼 ¡Tenemos pandas 2.0! Claramente la noticia de la semana y de lo que llevamos de año.

Marc García, el release manager para esta versión, escribió un excelente artículo desgranando el cambio clave de esta versión, que es el cambio de motor de NumPy a Arrow. Estas ideas al final nacen del ya clásico “Apache Arrow y las 10 cosas que odio de pandas”, escrito hace casi 6 años por Wes McKinney, creador de ambos. Haber llegado por fin a empezar a ejecutar esa visión es un hito de la comunidad y todos los usuarios de pandas nos vamos a beneficiar de ese duro trabajo.

Para mayor entretenimiento, Marc contó todo el proceso, que duró varias horas, en su Twitter:

(¿Parece que Substack ya no puede incrustar tweets? ¡Gracias, Elon!)

#63
April 6, 2023
Read more

Episodio 71 🐍⚙️

💖 Como cada mes, tenemos el boletín de NumFOCUS con jugosas novedades, ¡recomiendo encarecidamente su lectura! Además, han publicado también su informe anual de impacto. Muy feliz de ver lo que han conseguido este año, y de haber podido contribuir nuestro granito de arena desde PyData Madrid.

Screenshot displaying "Virtual Meetups and Collaborations - NumFOCUS is a key supporter of PyData’s volunteer-led global Meetups now on every continent but Antarctica." and some numbers:  175598 RSVPs to 3024 total events, 216 groups, 73 countries, 203817 members.

🚀 Aparte de las versiones nuevas recogidas por NumFOCUS, esta semana hemos sacado Kedro-Viz 6.0, con previsualización de tablas, mejoras en el área de seguimiento de experimentos (experiment tracking), y más cosas. Y de paso, ¡nuevo blog!

#62
April 1, 2023
Read more

Episodio 70 🐍⚙️

¿Publicar en domingo o dejarlo ya para la semana que viene? He preferido optar por lo primero, sobre todo teniendo en cuenta que aún va a costar que vuelva el noticiero los viernes por la mañana. ¡Que lo disfrutes!

🚀 Esta semana ha salido nueva versión de la Anaconda Distribution, la 2023.03, que incluye la última y más nueva versión de conda, nueva versión de Anaconda Navigator (la interfaz gráfica para lanzar aplicaciones y gestionar entornos), soporte para Python 3.11, e inclusión de transformers y otros paquetes nuevos.

Hablando de conda, ha salido también mamba 1.4, con errores mejorados en caso de conflicto de dependencias y otras pequeñas novedades. Si te animas a probarlo por fin, ojo con acabar como esta persona (mejor usa micromamba):

#61
March 26, 2023
Read more

Episodio 69 🐍⚙️

🔥 ¡El lunes arranca la segunda edición del mayor hackathon open-source de Procesamiento del Lenguaje Natural en español! El evento se desarrollará entre el 20 y el 31 de marzo, y los equipos que desarrollen un proyecto enfocado a uno de los Objetivos de Desarrollo Sostenible tendrán un punto extra. Si participas, ¡recuerda difundir con el hashtag #HackathonSomosNLP!

Hackathon Somos NLP 2023: Los LLMs hablan Español

🚀 ¡Fiesta de versiones nuevas importantes esta semana!

En primer lugar, PyTorch 2.0 trae una nueva API torch.compile, una nueva biblioteca llamada functorch inspirada en JAX, mejoras sustanciales de rendimiento, nuevas versiones de muchos componentes del ecosistema (TorchAudio, TorchVision…) y muchísimo más. Amplía información leyendo el anuncio oficial.

#60
March 18, 2023
Read more

Episodio 68 🐍⚙️

🚀 Me perdí hace unos días scikit-image 0.20, con nuevos ejemplos en la galería (incluyendo algunos interactivos muy chulos), soporte para imágenes anisótropas, nuevo parámetro channel_axis para imágenes multicanal, y mucho más.

También ha salido matplotlib 3.7.0, con soporte para barras de error en coordenadas polares, un nuevo método get_tick_params para ver la configuración de las marcas y rejilla, posibilidad de importar estilos de paquetes externos (esta petición la abrí yo en 2015, ¡más vale tarde que nunca!), y control de la leyenda fuera de los ejes entre otras cosas.

legend guide
#59
March 11, 2023
Read more

Episodio 67 🐍⚙️

🚀 Primera newsletter de mes, resumen de cambios en Polars (y hasta el mes que viene nada, ¡que si no, no hablo de otra cosa!): este mes han añadido salida a Excel y a bases de datos con nuevos métodos write_excel y write_database, ordenación de datos más grandes que la RAM (out-of-core) para varias columnas, y muchas mejoras tanto de ergonomía como de rendimiento.

Twitter avatar for @braaannigan
Liam Brannigan @braaannigan
Couple of nice changes to @DataPolars syntax in recent releases that make code look a bit cleaner

First - assigning columns with kwargs is no longer experimental so you can column_name = instead of using .alias

Image
9:09 AM ∙ Feb 21, 2023
40Likes2Retweets

⚠️ Es posible que hayas escuchado que está a punto de salir pandas 2.0. En este noticiero no suelo hablar de nada que no sean versiones ya estables, pero vale la pena avisar en este caso porque es más que posible que tu código o tus sistemas de integración continua se rompa ese día. Recuerda ajustar tus dependencias en tu requirements.txt o pyproject.toml:

(Y si todavía estás usando setup.py, estás tardando en migrar)

¡Cuando salga la versión estable dedicaremos el noticiero a ello!

💡 Esta semana he descubierto gator (antes Mamba Navigator), un gestor de entornos al estilo Anaconda Navigator pero de código abierto e integrado en JupyterLab.

https://raw.githubusercontent.com/mamba-org/gator/master/packages/labextension/jupyterlab_conda.gif

También he descubierto ydata-profiling, una versión actualizada del mítico pandas-profiling que también soporta Spark.

../../_images/widgets.gif

Y finalmente, también he descubierto Prefix.dev, un servicio online de creación de entornos conda/mamba. ¡Muy interesante!

Twitter avatar for @prefix_dev
prefix.dev @prefix_dev
Check out our latest feature: cloud environments on @prefix_dev . Create your own virtual environments within seconds, install locally and share them with whomever you like. See the announcement blog post by @tldejager here:
prefix.devIntroducing Online Environment SolvingWe’ve released our first version of online environment solving
4:39 PM ∙ Feb 21, 2023
35Likes12Retweets

📚 Me ha gustado mucho leer este informe de Quansight Labs sobre el impacto de la empresa en el ecosistema open-source.

Twitter avatar for @quansightai
Quansight @quansightai
At Quansight Labs, the open source projects we contribute to reach over 20 million people worldwide!

In our annual report, we highlight several project and community achievements we’re especially proud of. 🙌

#58
March 4, 2023
Read more

Episodio 66 🐍⚙️

🔥 Hace poco se anunció el nuevo JupyterLab Desktop, una forma diferente de utilizar este famoso editor. Para mí siempre ha sido un poco tedioso tener que instalar JupyterLab en cada entorno virtual de cada proyecto, y la opción de tener una instalación global y seleccionar el kernel adecuado siempre me pareció complicada comparada con lo sencillo que es elegir un intérprete en PyCharm o VS Code. Parece que JLab Desktop viene a solucionar este y otros problemas, así que estaré muy pendiente del proyecto.

Tengo que decir, eso sí, que mi primera impresión no ha sido satisfactoria. Estoy seguro que dentro de unas semanas o meses la experiencia mejorará notablemente.

🚀 Esta semana mi equipo ha publicado Kedro 0.18.5, incluyendo integración con OmegaConf, mejoras en el comando kedro run para hacerlo más consistente, soporte para usar generadores como nodos, y mucho más.

#57
February 25, 2023
Read more

Episodio 65 🐍⚙️

En algún momento volverá el noticiero a los viernes, están siendo semanas intensas. ¡Vamos allá!

🔥 ¡Tenemos dos anuncios jugosos de dos empresas muy importantes en el ecosistema esta semana!

Por un lado Anaconda Notebooks estrena un nivel gratuito. Esto nos da un JupyterLab en la nube, con la distribución completa de Anaconda instalada. Hay ciertas limitaciones: 100 MB de espacio en disco (así que no hay espacio para entornos extra) y 500 segundos de CPU al día, pero aun así creo que puede ser un entorno usable para experimentos y docencia.

Twitter avatar for @anacondainc
Anaconda @anacondainc
We’re excited to announce that Anaconda Notebooks is now completely FREE !! 💫🐍
#56
February 11, 2023
Read more

Episodio 64 🐍⚙️

🔥 Ha salido JupyterLab 3.6.0 con muchísimas novedades, y entre ellas el muy esperado modo colaborativo. Si llevas un tiempo siguiendo el proyecto tal vez esto te suene de algo, y no te faltaría razón: lo cierto es que ya hubo una versión de JupyterLab con colaboración en tiempo real, la 3.1 ¡en julio de 2021! Pero esta versión tenía graves problemas, y varios usuarios observaron cómo les desaparecían o se les corrompían completamente los notebooks. Casi dos años después la arquitectura de Jupyter ha cambiado completamente, y ahora sí que sí podemos confiar en que esta nueva funcionalidad será robusta.

Otros cambios interesantes incluyen un nuevo sistema de usuarios y notificaciones (posiblemente en preparación a lo que se viene para JupyterLab 4.0), mejoras de rendimiento, y algunas cosas más. Para más información, recomiendo leer el anuncio oficial.

He notado a mi alrededor que hay una brecha bastante grande entre data scientists, que utilizan JupyterLab o editores más minoritarios como Spyder, y data engineers, que suelen preferir VS Code o PyCharm. ¿Tú qué opinas? ¡Deja un comentario!

#55
February 4, 2023
Read more

Episodio 63 🐍⚙️

Semana intensa de trabajo con muchas formaciones, pero aunque sea tarde no quería dejar el noticiero sin mandar. Además, por aclamación popular, cambia de nombre a “Noticiero Python y Datos”. ¡Gracias por leer!

🚀 Las últimas versiones de Polars, hasta la 0.15.8, incluyen varias obsolescencias importantes: desaparece with_column en favor de with_columns (por consistencia), y se renombra iterrows a iter_rows. Además, varios métodos de transformación de texto ahora aceptan expresiones, por ejemplo str.starts_with, str.ends_with, y str.contains. Y finalmente, ¡parece que pronto vamos a tener soporte para seaborn!

Twitter avatar for @braaannigan
Liam Brannigan @braaannigan
Seaborn native support for @DataPolars looks really promising.

Quick example below of sns.jointplot

#54
January 27, 2023
Read more

Episodio 62 🐍⚙️🗳️

🚀 A principios de año Apache Arrow introdujo la versión 1.0 de la especificación “Arrow Database Connectivity” (ADBC), que pretende ser “una alternativa columnar a JDBC/ODBC”. Con ADBC, las bases de datos que usan Arrow nativamente ya pueden devolver resultados de consultas sin conversiones intermedias utilizando el protocolo Arrow Flight SQL, y las que no lo usen pueden hacer la conversión en el driver, mejorando el rendimiento. Con esto se completa el ecosistema Arrow para interacción con bases de datos: Arrow en sí mismo como formato en memoria, ADBC como API para clientes, y Arrow Flight SQL como protocolo de transferencia de datos. Si quieres saber más de Arrow, puedes ver mi charla en la PyConES 2022 sobre alternativas a pandas.

Y siguiendo con el tema, hemos tenido versiones nuevas de Polars (varias por semana, no las pongo todas en el noticiero), pero Polars 0.15.15 introduce ordenación out-of-core, lo que significa que se pueden ordenar miles de millones de filas sin que quepan en memoria en cuestión de un par de minutos.

https://user-images.githubusercontent.com/3023000/212352514-a44e74e4-21e2-421f-b06d-6a4d4c26dfd0.png
#53
January 20, 2023
Read more

Episodio 61 🐍⚙️

Estamos en el segundo noticiero del año y ya tengo exceso de enlaces, he tenido que comprimir y sintetizar bastante. ¡Vamos allá!

🚀 Ha salido Ibis 4.0, con varios nuevos backends incluyendo Polars y Snowflake, nuevos métodos read_csv y read_parquet para lectura de datos más sencilla, mayor granularidad para extraer elementos de campos JSON, y mucho más. Si estás buscando una capa de abstracción en Python sobre SQL, no te pierdas este proyecto.

También tenemos Fugue 0.8, y me gusta mucho cómo Kevin ha contado en LinkedIn la forma en la que han escuchado a los usuarios para hacer el proyecto más fácil de usar. Incluye varias funciones nuevas para lectura y escritura de datos y varias pequeñas mejoras de usabilidad.

#52
January 13, 2023
Read more

Episodio 60 🐍⚙️🍇 ¡Hola 2023!

🚀 ¡Estas navidades han salido versiones nuevas de multitud de paquetes esenciales en el ecosistema Python científico!

SciPy 1.10 tiene un nuevo submódulo scipy.datasets (dejando scipy.misc obsoleto), una nueva función scipy.interpolate.make_smoothing_spline que implementa un nuevo algoritmo de selección de parámetros para splines, una nueva función scipy.stats.goodness_of_fit para hacer pruebas de bondad de ajuste de manera sencilla, y muchísimo más. Si estás haciendo interpolación bidimensional, echa un vistazo a esta guía de transición.

Por su parte, IPython 8.0 trae mejoras en el autocompletado (sobre todo para claves de diccionarios) y otras pequeñas mejoras, y NumPy 1.24 elimina unas cuantas funcionalidades que estaban obsoletas, mejoras en F2PY (Fortran no estaba muerto, solo andaba de parranda) y algunos ajustes para casos raros de conversiones entre tipos. Estos dos proyectos son ya bastante maduros y no se esperan cambios sustanciales.

#51
January 6, 2023
Read more
Older archives  
GitHub
Website favicon
LinkedIn
Powered by Buttondown, the easiest way to start and grow your newsletter.