• 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
      • Simulador FIRE (Financial Independence, Retire Early)
    • Herramientas
      • Formateador / Minificador de 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

Indexación avanzada en NumPy: cómo simplificar la manipulación de arrays

noviembre 18, 2024 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 4 minutos

NumPy

La indexación es una técnica usada en NumPy para acceder y manipular los valores de los arrays. A pesar de esto, cuando se trabaja con grandes volúmenes de datos la indexación básica puede no ser suficiente. En estos casos es cuando se puede recurrir a la indexación avanzada en NumPy. La indexación avanzada facilita la selección y manipulación de subarrays de una manera sencilla, flexible y eficiente, permitiendo el acceso a elementos o subconjuntos específicos de manera dinámica y sin la necesidad de bucles. En esta entrada, se explicarán algunos conceptos de indexación avanzada en NumPy, viendo su aplicación a algunos problemas habituales.

Tabla de contenidos

  • 1 Ventajas de la indexación avanzada en NumPy
    • 1.1 Solución: la indexación avanzada de NumPy
  • 2 Ejemplos prácticos
    • 2.1 Extracción de elementos dispersos
    • 2.2 Seleccionar elementos con múltiples condiciones
    • 2.3 Aplicación en Data Analysis: Filtrado de datos específicos
  • 3 Conclusiones

Ventajas de la indexación avanzada en NumPy

Cuando se necesita obtener algunos elementos específicos de un array en base a condiciones o posiciones de un gran conjunto de datos se puede usar la indexación. Pero, con la indexación básica, solo se pueden seleccionar elementos contiguos o rangos consecutivos. Algo que limita las posibilidades y puede requerir el uso de luces para realizar el proceso complejo. Por ejemplo, en una matriz, ¿cómo seleccionar elementos en [0,1], [1,2], y [2,0] de forma eficiente?

Solución: la indexación avanzada de NumPy

La indexación avanzada en Numpy permite seleccionar elementos específicos mediante técnicas como boolean masking (enmascaramiento booleano) o indexación por listas. Eliminando la necesidad de recurrir a bucles. Al mismo tiempo que mejora el redimieron y la legibilidad del código. Estas técnicas se explican a continuación:

Nuevo simulador FIRE en el laboratorio de aplicaciones de Analytics Lane
En Analytics Lane
Nuevo simulador FIRE en el laboratorio de aplicaciones de Analytics Lane

  1. Indexación por listas: Permite realizar la selección de los elementos no contiguos de un array mediante una lista de índices en lugar de rangos. Facilitando la extracción de elementos en posiciones específicas. Ejemplo:
import numpy as np

data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

indices_filas = [0, 1, 2]
indices_columnas = [1, 2, 0]

seleccion = data[indices_filas, indices_columnas]

print(seleccion) 
[2 6 7]

Aquí, se han seleccionado los valores data[0,1], data[1,2] y data[2,0] de una forma eficiente y fácil de leer.

  1. Enmascaramiento booleano: Otra técnica avanzada es el enmascaramiento booleano, con la que se pueden seleccionar elementos en base a condiciones lógicas. Siendo algo especialmente útil para filtrar valores según criterios específicos, como números mayores que un umbral o valores específicos. Ejemplo:
mascara = data > 5
seleccion = data[mascara]

print(seleccion)
[6 7 8 9]

En este caso, el array mascara crea un filtro para los valores mayores a 5, extrayendo esos elementos sin bucles.

  1. Indexación combinada: Numpy permite combinar boolean masking con indexación por listas para realizar selecciones aún más complejas. Por ejemplo, se puede usar boolean masking para una dimensión y una lista de índices para otra, permitiendo de esta manera operaciones más avanzadas. Ejemplo:
data = np.array([[10, 20, 30], [40, 50, 60], [70, 80, 90]])

# Solo filas con valores en la segunda columna mayores a 20
filas_condicion = data[:, 1] > 20

# Seleccionamos solo la primera y tercera columna
columnas_especificas = [0, 2]  

seleccion = data[filas_condicion][:, columnas_especificas]

print(seleccion) 
[[40 60]
[70 90]]

Aquí, se filtran las filas donde la segunda columna tiene valores mayores a 20 y se seleccionan solo las columnas 0 y 2.

Publicidad


Ejemplos prácticos

A continuación se muestran tres ejemplos prácticos en los que estas técnicas pueden ser de utilidad.

Extracción de elementos dispersos

En una matriz, se puede recurrir a la indexación por listas para obtener la diagonal principal de esta. Tal como se muestra en el siguiente ejemplo donde se seleccionan los elementos en la diagonal de una matriz de 4×4.

data = np.arange(16).reshape(4, 4)

indices = [0, 1, 2, 3]
seleccion = data[indices, indices]

print(seleccion)
[ 0  5 10 15]

Seleccionar elementos con múltiples condiciones

Boolean masking se puede utilizar para filtrar datos en base a más de una condición. Por ejemplo, los valores en un array se puede buscar los valores que se encuentran en un rango, por encima de un valor y por debajo de otro. Esto es lo que se muestra en el siguiente código donde se seleccionan los elementos que cumplen con dos condiciones: valores entre 30 y 70.

data = np.random.randint(0, 100, (5, 5))
seleccion = data[(data > 30) & (data < 70)]

print(seleccion)
[54 40 67 57 53 31 67 58 33 35 41]

Publicidad


Aplicación en Data Analysis: Filtrado de datos específicos

También se puede usar los valores de un array para filtrar el otro, permitiendo seleccionar los valores en base a un valor asociado. Por ejemplo, se puede tener en un array las temperaturas y en otro los días de la semana, pudiendo seleccionar los días en los que se supera una temperatura dada. Esto es lo que se muestra a continuación donde se seleccionan los días de la semana donde la temperatura máxima es mayor de 21.

temperaturas = np.array([21, 23, 21, 22, 20, 21, 19])
dias = np.array(['lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado', 'domingo'])

seleccion = dias[temperaturas > 21]

print(seleccion)
['martes' 'jueves']

Conclusiones

La indexación avanzada en Numpy ofrece la posibilidad de trabajar con arrays complejos sin necesidad de bucles. Con boolean masking, indexación por listas o la combinaciones de ambos, es posible realizar operaciones complejas de selección de datos de forma eficiente. Estos métodos no solo mejoran la velocidad del código, sino que también hacen que el proceso de manipulación de datos sea más intuitivo y fácil de leer.

¿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?

Publicaciones relacionadas

  • Nuevo simulador FIRE en el laboratorio de aplicaciones de Analytics Lane
  • Nueva calculadora de préstamos e hipotecas en el laboratorio de aplicaciones de Analytics Lane
  • Hardening avanzado de NGINX: CSP, OCSP Stapling y defensa en profundidad
  • Nuevo generador y verificador de hashes en el laboratorio de aplicaciones de Analytics Lane
  • Nueva simulación de la estrategia Martingala en ruleta en el laboratorio de aplicaciones de Analytics Lane
  • Exactitud, precisión, recall… y los errores que cometemos al interpretarlas en proyectos reales
  • Nuevo simulador del problema de Monty Hall en el laboratorio de aplicaciones de Analytics Lane
  • Nuevo simulador interactivo de K-Means en el laboratorio de aplicaciones de Analytics Lane
  • Por qué los chatbots de inteligencia artificial parecen estar siempre de acuerdo contigo – Conversar con una inteligencia artificial – Parte I

Publicado en: Python Etiquetado como: NumPy

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

Chatbots vs redes sociales: la diferencia clave entre la inteligencia artificial y los algoritmos de recomendación – Conversar con una inteligencia artificial – Parte II

abril 21, 2026 Por Daniel Rodríguez

Nueva Calculadora de Estadísticos Descriptivos en el laboratorio de aplicaciones de Analytics Lane

abril 20, 2026 Por Daniel Rodríguez

Nuevo Inspector de JWT en el laboratorio de aplicaciones de Analytics Lane

abril 20, 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
  • Gráficos de barras en Matplotlib publicado el julio 5, 2022 | en Python
  • Copiar y pegar Activar copiar y pegar en VirtualBox publicado el mayo 1, 2019 | en Herramientas
  • Ordenadores para Machine Learning e Inteligencia Artificial en 2026: Guía completa para elegir el equipo adecuado según tu perfil y presupuesto publicado el enero 20, 2026 | en Reseñas
  • Chatbots vs redes sociales: la diferencia clave entre la inteligencia artificial y los algoritmos de recomendación – Conversar con una inteligencia artificial – Parte II publicado el abril 21, 2026 | en Opinión

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.9 (11)

Pandas: Cambiar los tipos de datos en los DataFrames

Comentarios recientes

  • 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
  • CARLOS ARETURO BELLO CACERES en Justicio: La herramienta gratuita de IA para consultas legales
  • Piera en Ecuaciones multilínea en Markdown

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