Recientemente me he visto en la necesidad de revisar varios libros Excel complejos en los que existían celdas con múltiples fórmulas SI anidadas, haciendo realmente complejo entender a simple vista la expresión. Aumentando la dificultad por el uso de referencias a celdas desplazadas. En libros pequeños, con una única hoja, posiblemente se pueda comprender lo que quería hacer el … [Leer más...] acerca de Add-in para auditar las fórmulas en Excel
Pandas: Aplicar una función a las filas o columnas de un DataFrame
En el caso de que necesitemos aplicar una misma función a las filas o columnas de un objeto DataFrame de Pandas contamos con el método apply(). Con el que es posible aplicar patrones de programación funcional a los conjuntos de datos. Esto hace que sea un método interesante de conocer y, cuando se comprende bien su funcionamiento, permite realizar operaciones complejas de forma … [Leer más...] acerca de Pandas: Aplicar una función a las filas o columnas de un DataFrame
Descubiertos paquetes con programas maliciosos para minar criptomonedas en PyPI
En un informe reciente de la empresa Sonatype se ha notificado la existencia de varios paquetes de Python, disponibles en PyPI, con código malicioso que convierte los equipos atacados en mineros de criptomonedas. En concreto el informe hace referencia a los siguientes paquetes:maratlibmaratlib1matplatlib-plusmllearnlibmplatliblearninglibLos cuales, según indica el … [Leer más...] acerca de Descubiertos paquetes con programas maliciosos para minar criptomonedas en PyPI
Librería Python para resolver el Bandido Multibrazo (Multi-Armed Bandit)
Durante los últimos meses he estado dedicando las entradas de los viernes a describir diferentes estrategias existentes para abordar los problemas tipo Bandido Multibrazo (Multi-Armed Bandit) e implementarlas en Python. Creando de este modo una colección de código que puede ser interesante para la realización de comparaciones entre algoritmos. Por eso, recientemente he … [Leer más...] acerca de Librería Python para resolver el Bandido Multibrazo (Multi-Armed Bandit)
Obtener los índices para ordenar un vector en JavaScript
La función sort() de Matlab además de devolver los datos ordenados también devuelve la posición de estos en el conjunto original en la nueva lista, algo que es muy útil cuando necesitamos ordenar los elementos de un vector en base a los valores de otro. Por ejemplo, si en un vector tenemos unos nombres y en otro unos valores asociados a los primeros es posible ordenar los … [Leer más...] acerca de Obtener los índices para ordenar un vector en JavaScript
Pandas: Encontrar la posición y valores de máximos y mínimos en un DataFrame
Los objetos DataFrame de Pandas disponen de los métodos max() e idxmax() con los que es posible obtener respectivamente el máximo de los valores y la posición de estos. Algo que se puede hacer tanto por filas como por columnas. De forma análoga a estos, también existen los métodos min() e idxmin() con los que es posible los valores mínimos y su posición. En esta entrada vamos a … [Leer más...] acerca de Pandas: Encontrar la posición y valores de máximos y mínimos en un DataFrame
Comparación de refuerzo (reinforcement comparison) para un problema Bandido Multibrazo (Multi-Armed Bandit)
Los métodos de comparación de refuerzo son similares a los métodos de seguimiento que vimos la semana pasada. En los que el bandido con el que se juega se selecciona en cada tirada aleatoriamente en base a unas probabilidades calculadas a partir de las recompensar empíricas.Comparación de refuerzoEn el método de comparación de refuerzo el agente asigna una recompensa … [Leer más...] acerca de Comparación de refuerzo (reinforcement comparison) para un problema Bandido Multibrazo (Multi-Armed Bandit)
Creación de un único archivo de tipos de una librería TypeScript
El año pasado publiqué una serie de entradas en las que explicaba un proceso para estructurar y crear una librería TypeScript. Explicando al final de esta un proceso para crear con Webpack un único archivo JavaScritp con toda la librería. Lo que nos permite usar el código creado en navegador y otros proyectos JavaScritp. El único problema de este archivo es que perdemos las … [Leer más...] acerca de Creación de un único archivo de tipos de una librería TypeScript
Guardar las contraseñas y claves en Python
Cada día es más habitual tener que guardar contraseñas o secretos en nuestros desarrollos. Desde las claves de autenticación imprescindibles para consultar diferentes APIs, hasta las credenciales con las que acceder a la base de datos en la cual se guardarán los resultados de las diferentes operaciones realizadas. Secretos que no es buena idea almacenar en el código. Al … [Leer más...] acerca de Guardar las contraseñas y claves en Python
Algoritmos de seguimiento (pursuit) para un problema Bandido Multibrazo (Multi-Armed Bandit)
Durante las últimas semanas he estado revisando algunas de las versiones de algoritmos UCB (Upper Confidence Bound) más utilizados a la hora de abordar problemas tipo Multi-Armed Bandit. Analizando durante este tiempo una importante cantidad de estos: UCB1, UCB2, UCB1-Tuned, UCB1-Normal, KL-UCB, UCB-V y CP-UCB. En esta ocasión vamos otro tipo de algoritmos como son los de … [Leer más...] acerca de Algoritmos de seguimiento (pursuit) para un problema Bandido Multibrazo (Multi-Armed Bandit)
Truco: Aumentar la memoria máxima en Node
Al ejecutar un proceso de Node que sea intensivo en memoria nos podemos encontrar que este finalice de una forma abrupta con un mensaje similar a FATAL ERROR: invalid table size Allocation failed - JavaScript heap out of memory. Lo que nos indica que este se ha quedado sin memoria. Generalmente esto no es debido a que el ordenador se quede sin memoria, sino a que se ha … [Leer más...] acerca de Truco: Aumentar la memoria máxima en Node
Probar números aleatorios en Python mediante mocks
Las pruebas automáticas son una parte clave de cualquier librería de código, ya que es la herramienta con la cual validar el correcto funcionamiento de esta después de incluir actualizaciones. Evitando de este modo que una actualización afecte al funcionamiento de los aplicativos donde se use. En el caso de que el código bajo pueda utilice un generador de números aleatorios es … [Leer más...] acerca de Probar números aleatorios en Python mediante mocks










