• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Laboratorio
    • Estadística
      • Calculadora del Tamaño Muestral en Encuestas
      • Calculadora de estadísticos descriptivos
      • Test de normalidad
      • Calculadora de contrastes de hipotesis
      • Calculadora de tamano del efecto
      • Simulador de Regresión Lineal con Ruido
      • Visualizador de PCA
      • Visualizador de Series Temporales
      • Simulador de Regresión Logística
      • Simulador de K-Means
      • Simulador de DBSCAN
      • Detector de la Ley de Benford
    • Probabilidad
      • Calculadora de Probabilidad de Distribuciones
      • Calculadora de Probabilidades de Lotería
      • Simulador del Problema de Monty Hall
      • Simulador de la Estrategia Martingala
    • Finanzas
      • Calculadora de Préstamos e Hipotecas
      • Conversor TIN ↔ TAE
      • Calculadora DCA con ajuste por inflación
      • Calculadora XIRR con Flujos Irregulares
      • Simulador FIRE (Financial Independence, Retire Early)
    • Negocios
      • CLV
      • Scoring
    • Herramientas
      • Formateador / Minificador de JSON
      • Conversor CSV ↔ JSON
      • Comparador y Formateador de Texto y JSON
      • Formateador y Tester de Expresiones Regulares
      • Inspector de JWT
      • Generador y verificador de hashes
      • Codificador / Decodificador Base64 y URL
      • Conversor de bases numericas
      • Conversor de Timestamp Unix
      • Conversor de colores
      • Generador de UUIDs
    • Juegos
      • Tres en Raya
      • Nim con Q-Learning
    • Más
      • Método D’Hondt
      • Generador de Contraseñas Seguras
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • IA Generativa
  • Python
  • Pandas
  • NumPy
  • R
  • Excel

¿Qué son y cómo manejar los errores FutureWarning en Python?

enero 22, 2024 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 5 minutos

Python y sus librerías es un ecosistema en continua evolución. Cada nueva versión de Python, o cualquiera de sus librerías, incluye nuevas características, mejoras de rendimiento y soluciona posibles errores. En la mayoría de los casos los cambios no afectan al funcionamiento del código existente, pero en otros casos si. Cuando se van a introducir cambios que pueden afectar al funcionamiento de las funciones, o como se deben llamar a estas, lo normal es incluir las advertencias conocidas como FutureWarning. En esta entrada, se analizará qué son los errores FutureWarning en Python y cómo abordarlos de manera efectiva.

Tabla de contenidos

  • 1 ¿Qué es un FutureWarning en Python?
  • 2 Tipos comunes de FutureWarning
    • 2.1 Advertencia de obsolescencia
    • 2.2 Cambio en el valor predeterminado
  • 3 Consejos para gestionar los errores FutureWarning en Python
  • 4 Supresión selectiva de los FutureWarning
  • 5 Lanzar FutureWarning es librerías propias
  • 6 Conclusiones

¿Qué es un FutureWarning en Python?

Los mensajes FutureWarning en Python son advertencias que se emiten cuando se ejecuta unas características que están en desuso o que cambiarán en futuras versiones. Indicando a los desarrolladores que deben actualizar su código para prepararlo de cara a futuras versiones. Estos mensajes no detienen la ejecución del código, ya que no son un error sino una advertencia, y su única función es la de recordar los futuros cambios. A pesar de ello, es necesario tenerlos en cuenta cuando aparecen para evitar que los programas dejen de funcionar en una futura actualización de Python o la de librería que genera el mensaje.

Tipos comunes de FutureWarning

Las advertencias FutureWarning se pueden clasificar en diferentes tipos de categorías.

Nuevo test de normalidad interactivo en el laboratorio de Analytics Lane
En Analytics Lane
Nuevo test de normalidad interactivo en el laboratorio de Analytics Lane

Publicidad


Advertencia de obsolescencia

Posiblemente el tipo de FutureWarning más habitual es la advertencia de obsolescencia de una función o un atributo. Lo que indica que una característica específica que se está usando en el código está en desuso. Cuando aparecen estos mensajes se recomienda actualizar el código tan pronto sea posible para usar la nueva sintaxis.

Por ejemplo, el siguiente mensaje indica que la función get_feature_names ha pasado a estar obsoleta y se eliminará en una versión futura versión de Scikit-learn.

FutureWarning: Function get_feature_names is deprecated; get_feature_names is deprecated in 1.0 and will be removed in 1.2. Please use get_feature_names_out instead.

Para poder usar el código con scikit-learn 1.2 será necesario cambiar todas las llamadas a get_feature_names por llamadas a get_feature_names_out. Revisando la documentación de las funciones para adaptar las llamadas. Aunque esto no es gratis, como la función get_feature_names_out se introdujo en la versión 1.0, al realizar el cambio no se podrá ejecutar el código actualizado en versiones previas. Por lo que será necesario informar a los usuarios de los que ya no será posible utilizar el código en versiones anteriores.

Otra opción es que el cambio se de en el un parámetro de la función, como el siguiente ejemplo.

FutureWarning: Attribute `affinity` was deprecated in version 1.2 and will be removed in 1.4. Use `metric` instead

En este caso, el parámetro affinity desaparecerá en la versión 1.4 de Scikit-learn reemplazó por metric. Al igual que el caso anterior es necesario cambiar la llamada a la función.

Cambio en el valor predeterminado

Mediante un mensaje FutureWarning también se puede indicar cambios en los valores predeterminados de los parámetros de funciones. El siguiente ejemplo es de scikit-learn.

FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning
  super()._check_params_vs_input(X, default_n_init=10)

Este mensaje indica que el valor por defecto actual de n_init es 10, pero en la versión 1.4 pasará a ser 'auto'. Aconsejando establecer explícitamente el valor de n_init para suprimir la advertencia. A diferencia del caso anterior en este caso el código va a seguir funcionando cuando llegue la versión 1.4 de la librería, pero los resultados pueden cambiar ya que hay un cambio en un parámetro. Por lo que se debe seguir el consejo para evitar que en una futura versión el funcionamiento del programa cambie.

Consejos para gestionar los errores FutureWarning en Python

Los mensajes FutureWarning no son un problema inminente en Python, pero ignorarlos puede hacer que el código deje de funcionar en una actualización. Cuando se tiene un mensaje de este tipo es aconsejable seguir los siguientes pasos:

  1. Leer la documentación: Antes de realizar cambios en el código se debe consultar a la documentación para comprender la razón detrás del FutureWarning. Lo que proporcionará la información necesaria sobre la nueva sintaxis o función.
  2. Actualiza el código: Una vez comprendida la naturaleza de la advertencia, actualiza el código en base a las recomendaciones. Aprovechando la ocasión para mejorar y optimizar el código.
  3. Realizar pruebas exhaustivas: Después de aplicar los cambios será necesario realizar pruebas exhaustivas para asegurar que el código actualizado funcione como se espera. Algo crucial para evitar posibles problemas cuando se ponga en producción.

Publicidad


Supresión selectiva de los FutureWarning

En algunos casos, se puede optar por suprimir temporalmente las advertencias si se está seguro de que el código es compatible y las actualizaciones no son necesarias de inmediato. Siendo algo que se debe hacer con extrema precaución y documentando claramente el motivo. Si el código no es compatible y se ignora el mensaje en código dejará de funcionar en un futuro.

Para realizar una supresión selectiva de los mensajes se puede usar el siguiente código.

import warnings

# Suprimir la advertencia específica
warnings.filterwarnings("ignore", category=FutureWarning, module="nombre_de_la_biblioteca")

En donde se debe reemplazar “nombre_de_la_biblioteca” por el nombre de la librería de la que se desea anular los mensajes.

Lanzar FutureWarning es librerías propias

Los mensajes FutureWarning se pueden lanzar desde cualquier librería o función escrita en Python. De hecho, es aconsejable usarlos cuando se planea realizar un cambio que puede afectar al funcionario de esta en una futura versión. Facilitando a los usuarios el cambio entre versiones. Para ello solamente se tiene que importar el módulo warnings y lanzar una warnig con FutureWarning como segundo parámetro. Un ejemplo básico de esto sería el que se muestra a continuación.

import warnings

def deprecated_function():
    # Emitir una advertencia de depreciación
    warnings.warn("La función 'deprecated_function' está obsoleta y será eliminada en la próxima versión.", FutureWarning)
    
    # Resto del código de la función...


deprecated_function()
FutureWarning: La función 'deprecated_function' está obsoleta y será eliminada en la próxima versión.
  warnings.warn("La función 'deprecated_function' está obsoleta y será eliminada en la próxima versión.", FutureWarning)

Conclusiones

Los errores FutureWarning en Python son un recordatorio de la evolución constante del ecosistema. Al que es necesario adaptarse para disfrutar de las últimas novedades y mejoras. Los desarrolladores que abordan estas advertencias de manera proactiva pueden mantener el código actualizado y asegurar la compatibilidad con las futuras versiones. La clave radica en comprender la naturaleza de la advertencia, actualizar el código en consecuencia y realizar pruebas exhaustivas para garantizar un código robusto y sin problemas.

Imagen de Pete Linforth en Pixabay

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 0 / 5. Votos emitidos: 0

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicidad


Publicaciones relacionadas

  • Nuevo test de normalidad interactivo en el laboratorio de Analytics Lane
  • Nuevo conversor de timestamp Unix en el laboratorio de Analytics Lane
  • Calculadora de Contrastes de Hipótesis: interpreta correctamente el p-valor y toma decisiones estadísticas con confianza
  • Calculadora de Tamaño del Efecto: la herramienta clave para entender cuánto importa realmente una diferencia
  • Simulador de DBSCAN: descubre cómo encontrar clusters reales (y ruido) sin fijar K
  • Conversor de Colores: convierte, compara y valida cualquier color en tiempo real
  • Analytics Lane lanza su Generador de UUIDs: identificadores únicos, seguros y listos para producción en segundos
  • 1200 publicaciones en Analytics Lane
  • Analytics Lane lanza su Conversor TIN ↔ TAE: la herramienta definitiva para entender el coste real de depósitos, préstamos e hipotecas

Publicado en: Python

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

De la Regresión Logística al Scorecard: La Transformación Matemática

mayo 19, 2026 Por Daniel Rodríguez

Noticias

Analytics Lane lanza la versión 1.1 del laboratorio con nuevas suites de CLV y Scoring

mayo 18, 2026 Por Daniel Rodríguez

Interés compuesto: la fuerza que multiplica tu dinero (y los errores que la anulan)

mayo 14, 2026 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Método del codo (Elbow method) para seleccionar el número óptimo de clústeres en K-means publicado el junio 9, 2023 | en Ciencia de datos
  • Faker en Python: qué es, para qué sirve y cómo generar datos sintéticos realistas publicado el febrero 17, 2026 | en Python
  • ¿Puede la inteligencia artificial ser creativa? [Mitos de la Inteligencia Artificial 3] publicado el julio 2, 2024 | en Opinión
  • Cómo extender el tamaño de un disco en Rocky Linux 9 usando growpart y LVM publicado el septiembre 2, 2025 | en Herramientas
  • Hoja de cálculo para repartir los escaños en base al método D’Hont Aplicar el método D’Hondt en Excel publicado el abril 14, 2021 | en Herramientas

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.1 (11)

Aplicar el método D’Hondt en Excel

Comentarios recientes

  • bif en JSON en bases de datos: cuándo es buena idea y cuándo no
  • bif en Cómo desinstalar Oracle Database 19c en Windows
  • M. Pilar en Cómo eliminar las noticias en Windows 11 y recuperar tu concentración
  • Daniel Rodríguez en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • Pepe en Probabilidad básica: cómo entender el azar en nuestra vida diaria

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2026 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto