Matriz 2d de máscara NumPy
- Crear máscara o matriz booleana 2d con NumPy en Python
- Crear máscara con operadores lógicos de Python
- Crear máscara con la función lógica NumPy
Vamos a aprender con esta explicación qué es la máscara o arreglo booleano. También aprendemos cómo crear una máscara 2d con operadores lógicos de P1ython y la función lógica NumPy en python.
Crear máscara o matriz booleana 2d con NumPy en Python
Empezamos con algún arreglo donde aplicamos alguna condición, y luego generamos una máscara
o un arreglo booleano. Por ejemplo, pensemos solo en una matriz de números enteros que se muestra a continuación y luego apliquemos esta condición, que es menor que cinco.
La matriz booleana resultante tendría la misma forma que la matriz de entrada y sería simplemente una aplicación elemento por elemento de la condición. En este caso, 8 es menor que 5, por lo que es falso, 2 es menor que 5, eso es verdadero, 1 es menor que 5 verdadero, y así sucesivamente.
A veces representa máscara por 0-1, y el falso representa 0 y 1 representa verdadero.
Crear máscara con operadores lógicos de Python
Saltaremos al código importando numpy
y crearemos una variable llamada My_2DArray
, que se completa con una lista 2d de Python usando una matriz numpy
.
import numpy as np
My_2DArray = np.array([[-12, -31, 5], [7, 0, -9]])
print(My_2DArray)
Producción :
[[-12 -31 5]
[ 7 0 -9]]
Veamos un ejemplo para demostrar máscara
. Estamos creando una nueva variable llamada zero_mod_array
, que toma los valores donde My_2DArray
es divisible por 7 usando el operador %
.
Seleccionamos todos los elementos de la matriz donde el resto después de la división por 7 es igual a cero.
Código:
import numpy as np
My_2DArray = np.array([[-12, -31, 5], [7, 0, -9]])
zero_mod_array = 0 == (My_2DArray % 7)
print(zero_mod_array)
Después de ejecutar, vemos que hemos creado una matriz de valores booleanos. Si nos fijamos en el primer elemento de un arreglo que es -12 no es divisible por 7, y el siguiente tampoco lo es, pero el primer elemento de la segunda lista es 7, que es divisible por 7, y el segundo elemento 0 también es divisible por 7.
Por lo tanto, ambos elementos son Verdaderos
a excepción de otros elementos porque todos los elementos no son divisibles por 7, por lo que obtuvimos valores Falsos
en sus posiciones.
Producción :
[[False False False]
[ True True False]]
En el siguiente ejemplo, estamos creando una variable llamada Sun_array
, y estos serían elementos esenciales de las matrices de máscaras booleanas. Estamos tomando My_2DArray
e indexándolo con los resultados que creamos en zero_mod_array
.
Código:
import numpy as np
My_2DArray = np.array([[-12, -31, 5], [7, 0, -9]])
zero_mod_array = 0 == (My_2DArray % 7)
Sun_array = My_2DArray[zero_mod_array]
print(Sun_array)
Producción :
[7 0]
Usemos Sun_array
como una matriz de máscara para indexarse, seleccionando los elementos dentro de Sun_array
que son mayores que 0 y creando una nueva matriz que solo contiene los elementos positivos.
Sun_array[Sun_array > 0]
En nuestro Sun_array
solo un elemento es mayor que 7 array([7])
. Si examinamos el Sun_array
, veremos que los valores no cambian; sigue siendo una matriz ([7, 0])
.
Crear máscara con la función lógica NumPy
Examinemos un método alternativo para realizar la misma tarea. De manera particular, utilizaremos operadores lógicos NumPy.
Primero, crearemos una variable llamada mod_test
, que asignará los resultados del operador resto como hicimos anteriormente.
Haremos algo similar y crearemos otra variable llamada positive_test
, y esta vez asignaremos los valores donde My_2DArray
es mayor que cero, lo que significa que indicará los valores booleanos después de aplicar la condición en cada elemento de My_2DArray
.
Crearemos otra variable llamada combined_test
y que utiliza la función logical_and()
y toma como argumentos mod_test
y positive_test
.
Código:
import numpy as np
My_2DArray = np.array([[-12, -31, 5], [7, 0, -9]])
mod_test = 0 == (My_2DArray % 7)
positive_test = My_2DArray > 0
combined_test = np.logical_and(mod_test, positive_test)
print(combined_test)
Después de la ejecución, vemos los valores booleanos perfectos y contiene solo un valor que corresponde a la matriz.
Producción :
[[False False False]
[ True False False]]
Podemos usar combined_test
para indexar nuestra matriz original y obtener el mismo valor que obtuvimos anteriormente.
Código:
import numpy as np
My_2DArray = np.array([[-12, -31, 5], [7, 0, -9]])
mod_test = 0 == (My_2DArray % 7)
positive_test = My_2DArray > 0
combined_test = np.logical_and(mod_test, positive_test)
print(My_2DArray[combined_test])
Producción :
[7]
Así es como podemos enmascarar la matriz NumPy 2d usando dos técnicas para lograr el mismo resultado.
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn