¿Cómo eliminar filas de array que contienen solo 0 usando NumPy?

La biblioteca Numpy proporciona una función llamada numpy.all() que devuelve True cuando todos los elementos de la segunda array pasados ​​al primer parámetro son True; de ​​lo contrario, devuelve False. Por lo tanto, para determinar la fila completa que contiene 0 se puede eliminar especificando axis=1. Recorrerá cada fila y verificará la condición dada en el primer parámetro. 

Ejemplo:

data=[[1,2,3]
      [0,0,0]
      [9,8,7]]
After removing row with all zeroes:
data=[[1,2,3]
      [9,8,7]]

Ejemplo 1:

Enfoque seguido: 

  • Tome una array numpy nd.
  • Elimine las filas que contienen solo ceros usando la función numpy.all().
  • Imprime la segunda array.

Python3

import numpy as np
# take data
data = np.array([[1, 2, 3], [0, 0, 0], [4, 5, 6],
                 [0, 0, 0], [7, 8, 9], [0, 0, 0]])
# print original data having rows with all zeroes
print("Original Dataset")
print(data)
 
# remove rows having all zeroes
data = data[~np.all(data == 0, axis=1)]
 
# data after removing rows having all zeroes
print("After removing rows")
print(data)

Producción:

Ejemplo 2:

Enfoque seguido:

  • Tome 20 números aleatorios entre 0 y 10, usando el método numpy.random.choice().
  • Alinéelos en filas y columnas, usando el método remodelar().
  • Marque explícitamente algunas filas como completamente 0.
  • Elimina las filas que solo tienen ceros.
  • Imprimir conjunto de datos.

Python3

import numpy as np
# take random data
 
# random.choice(x,y) will pick y elements from range (0,(x-1))
data = np.random.choice(10, 20)
 
# specify the dimensions of data i.e (rows,columns)
data = data.reshape(5, 4)
 
# print original data having rows with all zeroes
print("Original Dataset")
print(data)
 
# make some rows entirely zero
data[1, :] = 0  # making 2nd row entirely 0
data[4, :] = 0  # making last row entirely 0
 
# after making 2nd and 5th row as 0
print("After making some rows as entirely 0")
print(data)
data = data[~np.all(data == 0, axis=1)]
 
# data after removing rows having all zeroes
print("After removing rows")
print(data)

Producción:

Publicación traducida automáticamente

Artículo escrito por rohanchopra96 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 *