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