¿Cómo filtrar una array NumPy bidimensional según la condición?

En este artículo, vamos a ver cómo aplicar el filtro por la condición dada en la array bidimensional NumPy. Tenemos que obtener la salida de los elementos requeridos, es decir, lo que queramos filtrar los elementos de la array existente o de la nueva array.

Aquí vamos a crear una array bidimensional en numpy.

Python3

import numpy as np
 
 
# 2-D Array also called as arrays
# with rank 2
np_2d_arr = np.array([[1, 2, 3], [4, 5, 6]])
 
# View the 2-D Array A2
print(np_2d_arr)

Producción:

[[1 2 3]
 [4 5 6]]

Ahora veamos un ejemplo para aplicar el filtro por la condición dada en la array bidimensional NumPy.

Ejemplo 1: Usar el método np.asarray()

En este ejemplo, estamos usando el método np.asarray() que se explica a continuación:

Sintaxis: numpy.asarray(arr, dtype=Ninguno, order=Ninguno)

Parámetros:

  • arr : [array_like] Datos de entrada, en cualquier forma que se pueda convertir en una array. Esto incluye listas, listas de tuplas, tuplas, tuplas de tuplas, tuplas de listas y ndarrays.
  • dtype: [tipo de datos, opcional] De forma predeterminada, el tipo de datos se deduce de los datos de entrada.
  • orden: si se utiliza la representación de memoria de fila principal (estilo C) o de columna principal (estilo Fortran). El valor predeterminado es ‘C’.

Retorno: [ndarray] Interpretación de array de arr. No se realiza ninguna copia si la entrada ya está ndarray con el tipo de d y el orden coincidentes. Si arr es una subclase de ndarray, se devuelve una clase base ndarray.

Aquí, primero creamos una array numpy y un filtro con sus valores para filtrar. Para filtrar, usamos este fltr en el método numpy.in1d() y lo almacenamos como sus valores en la array original que devuelve True si se cumple la condición.

Python3

import numpy as np
 
 
arr = np.asarray([[1, 'one'], [2, 'two'], [3, 'three'],
                  [4, 'four'], [5, 'five']])
 
fltr = np.asarray(['two', 'four'])
arr[np.in1d(arr[:, 1], fltr)]

Producción:

array([['2', 'two'],
       ['4', 'four']], dtype='<U21')

Ejemplo 2: Usar el método numpy.all()

En este ejemplo, estamos usando el método np.all() que se explica a continuación:

La función numpy.all() comprueba si todos los elementos de la array a lo largo del eje mencionado se evalúan como verdaderos.

Sintaxis: numpy.all(array, eje = Ninguno, salida = Ninguno, keepdims = clase numpy._globals._NoValue en 0x40ba726c)

Parámetros:

  • Array: [array_like] Array de entrada u objeto cuyos elementos necesitamos probar.
  • eje: [int o tupla de enteros, opcional] Eje a lo largo del cual se evalúan los elementos de la array.
  • out: [ndarray, opcional] Array de salida con las mismas dimensiones que la array de entrada, colocada con el resultado
  • keepdims: [booleano, opcional] si se establece en True.

Retorno: una nueva array booleana según el parámetro ‘out’

Aquí, primero creamos una array numpy usando los métodos np.arrange() y reshape(). Para filtrar usamos condiciones en el lugar del índice a filtrar. El método np.all() devuelve True si todos los valores cumplen la condición. Este valor de retorno se asigna con la array original para dar los valores filtrados.

Python3

import numpy as np
 
 
a = np.arange(12).reshape((3, 4))
print(a[:, np.all(a < 10, axis = 0)])

Producción:

[[0 1]
 [4 5]
 [8 9]]

Ejemplo 3: Usar el método numpy.any()

En este ejemplo, estamos usando el método np.any() que se explica a continuación:

La función numpy.any() comprueba si algún elemento de la array a lo largo del eje mencionado se evalúa como verdadero.
Sintaxis: numpy.any(a, axis = None, out = None, keepdims = class numpy._globals._NoValue at 0x40ba726c)

Parámetros:

  • array: [array_like] Array de entrada u objeto cuyos elementos necesitamos probar.
  • eje: [int o tupla de enteros, opcional] Eje a lo largo del cual se evalúan los elementos de la array.
  • out: [ndarray, opcional] Array de salida con las mismas dimensiones que la array de entrada, colocada con el resultado
  • keepdmis: [booleano, opcional] si se establece en True.

Retorno: una nueva array booleana según el parámetro ‘out’

Aquí, primero creamos una array numpy usando los métodos np.arrange() y reshape(). Para filtrar usamos condiciones en el lugar del índice a filtrar. El método np.any() devuelve verdadero si alguno de los valores cumple la condición. Este valor de retorno se asigna con la array original para dar los valores filtrados.

Python3

import numpy as np
 
 
a = np.arange(12).reshape((3, 4))
print(a[:, np.any(a < 2, axis = 0)])

Producción:

[[0 1]
 [4 5]
 [8 9]]

Publicación traducida automáticamente

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