En este artículo, aprenderemos cómo eliminar filas de una array NumPy en función de múltiples condiciones. Para realizar nuestra tarea, necesitaremos algunos métodos incorporados proporcionados por el módulo NumPy que son los siguientes:
- np.delete(ndarray, index, axis): elimine elementos de filas o columnas de la array NumPy en función de las condiciones de índice dadas y el eje especificado, el parámetro ndarray es la array en la que se realizará la manipulación, el índice se basa en las filas particulares en las condiciones que se eliminarán, eje = 0 para eliminar filas en nuestro caso.
- np.where (condiciones): Opera en elementos de array según las condiciones en filas o columnas según el eje dado.
Nota: Para arrays NumPy bidimensionales, las filas se eliminan si el eje = 0 y las columnas se eliminan si el eje = 1. Pero aquí lo que pretendemos es eliminar filas, por lo que mantendremos el eje = 0.
Tomemos la muestra de la array NumPy. Aquí hemos tomado una array NumPy que tiene elementos del 0 al 40 y la hemos reformado en 8 filas y 5 columnas.
Python3
import numpy as np nparray = np.arange(40).reshape((8, 5)) print("Given numpy array:\n", nparray)
Producción:
Ejemplo 1: eliminar filas que tengan elementos entre 5 y 20 de la array NumPy
Aquí np.where((nparray >= 5) & (nparray <= 20))[0], axis=0) significa que eliminará las filas en las que hay al menos uno o más elementos mayores o iguales que 5 y menor o igual que 20. Por lo tanto, las filas 2, 3, 4 y 5 tienen elementos de acuerdo con las condiciones dadas, por lo que se eliminan o eliminan.
Python3
nparray = np.delete(nparray, np.where( (nparray >= 5) & (nparray <= 20))[0], axis=0) print("After deletion of rows containing numbers between 5 and 20: \n", nparray)
Producción:
Ejemplo 2: eliminar filas cuyo primer elemento sea mayor que 25 y menor que 35 de la array NumPy
Aquí (np.where(nparray[:, 0] >= 25) & (nparray[:, 0] <= 35))[0], axis=0) significa que eliminará las filas en las que hay al menos una o más elementos cuyo primer elemento sea mayor o igual a 25 y menor que igual a 35. El nparray[:, 0] para apuntar al primer elemento de cada fila. Entonces, las filas 6, 7 y 8 tienen elementos de acuerdo con las condiciones dadas, por lo que se eliminan o eliminan.
Python3
nparray = np.delete(nparray, np.where( (nparray[:, 0] >= 25) & (nparray[:, 0] <= 35))[0], axis=0) print("After deletion of rows whose first element \ is between 25 and 35:\n", nparray)
Producción:
Ejemplo 3: eliminar filas cuyo tercer elemento sea divisible por 2, los elementos 5 y 4 sean divisibles por 3
Aquí np.where((nparray[:, 2] % 2 == 0) | (nparray[:, 4] % 3 == 0)| (nparray[:, 3] % 3 == 0))[0] , eje = 0) significa que eliminará las filas en las que hay al menos uno o más elementos cuyos elementos de la tercera columna son divisibles por 3 o filas en las que hay al menos uno o más elementos cuyos elementos de la quinta y cuarta columna (s) son divisibles por 3 ejes = 0 para eliminar las filas. nparray[:, 2], nparray[:, 4], nparray[:, 3] para apuntar al tercer, quinto y cuarto elemento de cada fila respectivamente. Entonces, las filas 6, 7 y 8 tienen elementos de acuerdo con las condiciones dadas, por lo que se eliminan o eliminan.
Python3
nparray = np.delete(nparray, np.where((nparray[:, 2] % 2 == 0) | ( nparray[:, 4] % 3 == 0) | (nparray[:, 3] % 3 == 0))[0], axis=0) print("After removing required rows :\n", nparray)
Producción:
Publicación traducida automáticamente
Artículo escrito por rijushree100guha y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA