NumPy – Filtrado de filas por múltiples condiciones

En este artículo, discutiremos cómo filtrar filas de la array NumPy por múltiples condiciones. Antes de pasar a filtrar filas por múltiples condiciones, primero veamos cómo podemos aplicar el filtro en función de una condición. Hay básicamente dos enfoques para hacerlo:

Método 1: usar una array de máscaras

La función de máscara filtra los números de la array arr que están en los índices de falso en la array de máscara . El desarrollador puede configurar la array de máscaras según sus requisitos; se vuelve muy útil cuando es difícil formar una lógica de filtrado.

Acercarse

  • Módulo de importación
  • Hacer array inicial
  • Definir máscara
  • Haz una nueva array basada en la máscara.
  • Imprimir nueva array

Programa:

Python3

# importing numpy lib
import numpy as np
 
# making a numpy array
arr = np.array([x for x in range(11, 20)])
 
print("Original array")
print(arr)
 
# defining mask
mask = [True, False, True, False, True, True, False, False, False]
 
# making new array on conditions
new_arr = arr[mask]
 
print("New array")
print(new_arr)

Producción

array original

[11 12 13 14 15 16 17 18 19]

Nueva array

[11 13 15 16]

Método 2: Usar el método iterativo

En lugar de usar máscaras, el desarrollador itera la array arr y aplica la condición en cada uno de los elementos de la array. 

Acercarse

  • Módulo de importación
  • Crear array
  • Crear una array vacía
  • Iterar a través de la array
  • Seleccionar elementos en función de alguna condición
  • Agregar elementos seleccionados a la array vacía
  • array de visualización

Programa:

Python3

# importing numpy lib
import numpy as np
 
# making a numpy array
arr = np.array([x for x in range(11, 20)])
 
print("Original array")
print(arr)
 
# making a blank list
new_arr = []
 
for x in arr:
  # applying condition: appending even numbers
    if x % 2 == 0:
        new_arr.append(x)
 
# Converting new list into numpy array
new_arr = np.array(new_arr)
print("New array")
print(new_arr)

Producción

array original

[11 12 13 14 15 16 17 18 19]

Nueva array

[12 14 16 18]

Ahora intentemos aplicar múltiples condiciones en la array NumPy

Método 1: Usar máscara

Acercarse

  • Módulo de importación
  • Crear array inicial
  • Definir máscara basada en múltiples condiciones
  • Agregue valores a la nueva array de acuerdo con la máscara
  • array de visualización

Ejemplo

Python3

# importing numpy lib
import numpy as np
 
# making a numpy array
arr = np.array([x for x in range(11, 40)])
 
print("Original array")
print(arr)
 
# defining mask based on two conditions:
# array element must be greater than 15
# and must be a divisible by 2
mask = (arr > 15) & (arr % 2 == 0)
 
# making new array on conditions
new_arr = arr[mask]
print("New array")
print(new_arr)

Producción

array original

[11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

35 36 37 38 39]

Nueva array

[16 18 20 22 24 26 28 30 32 34 36 38]

Método 2: método iterativo

Acercarse

  • Módulo de importación
  • Crear array inicial
  • Crear una array vacía
  • Iterar a través de la array
  • Seleccionar elementos en función de múltiples condiciones
  • Agregar elementos seleccionados a la lista vacía
  • array de visualización

Ejemplo

Python3

# importing numpy lib
import numpy as np
 
# making a numpy array
arr = np.array([x for x in range(11, 40)])
 
print("Original array")
print(arr)
 
# making a blank list
new_arr = []
 
for x in arr:
    # applying two conditions: number is divisible by 2 and is greater than 15
    if x % 2 == 0 and x > 15:
        new_arr.append(x)
 
# Converting new list into numpy array
new_arr = np.array(new_arr)
print("New array")
print(new_arr)

Producción

array original

[11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

35 36 37 38 39]

Nueva array

[16 18 20 22 24 26 28 30 32 34 36 38]

Método 3: Usar lambda

Acercarse

  • Módulo de importación
  • Crear array inicial
  • Aplicar múltiples condiciones usando la función lambda
  • Seleccione los elementos en consecuencia
  • Agregar elementos a una nueva array
  • array de visualización

Ejemplo

Python3

# importing numpy lib
import numpy as np
 
# making a numpy array
arr = np.array([x for x in range(11, 40)])
 
print("Original array")
print(arr)
 
# using lambda to apply condition
new_arr = list(filter(lambda x: x > 15 and x % 2 == 0 and x % 10 != 0, arr))
 
# Converting new list into numpy array
new_arr = np.array(new_arr)
print("New array")
print(new_arr)

Producción

array original

[11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

35 36 37 38 39]

Nueva array

[16 18 22 24 26 28 32 34 36 38]

Publicación traducida automáticamente

Artículo escrito por apurva__007 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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