NumPy-Maske 2D-Array
- Erstellen Sie eine Maske oder ein boolesches 2D-Array mit NumPy in Python
- Erstellen Sie eine Maske mit logischen Python-Operatoren
- Erstellen Sie eine Maske mit der logischen NumPy-Funktion
Wir lernen mit dieser Erklärung, was die Maske oder das boolesche Array ist. Wir lernen auch, wie man eine 2D-Maske mit logischen P1ython-Operatoren und der logischen NumPy-Funktion in Python erstellt.
Erstellen Sie eine Maske oder ein boolesches 2D-Array mit NumPy in Python
Wir beginnen mit einem Array, auf das wir eine Bedingung anwenden, und dann generieren wir eine Maske
oder ein boolesches Array. Stellen wir uns zum Beispiel nur ein Array von Ganzzahlen vor, das unten gezeigt wird, und wenden dann diese Bedingung an, die kleiner als fünf ist.
Das resultierende boolesche Array hätte die gleiche Form wie das Eingabearray und wäre nur eine Element-für-Element-Anwendung der Bedingung. In diesem Fall ist 8 kleiner als 5, also falsch, 2 kleiner als 5, also wahr, 1 kleiner als 5 wahr, und so weiter.
Manchmal stellt es eine Maske durch 0-1 dar, und das Falsche stellt 0 dar und 1 stellt wahr dar.
Erstellen Sie eine Maske mit logischen Python-Operatoren
Wir springen in den Code, indem wir numpy
importieren und eine Variable namens My_2DArray
erstellen, die mit einer Python 2d-Liste unter Verwendung eines numpy
-Arrays gefüllt wird.
import numpy as np
My_2DArray = np.array([[-12, -31, 5], [7, 0, -9]])
print(My_2DArray)
Ausgang:
[[-12 -31 5]
[ 7 0 -9]]
Lassen Sie uns ein Beispiel haben, um Maske
zu demonstrieren. Wir erstellen eine neue Variable namens zero_mod_array
, die die Werte annimmt, bei denen My_2DArray
mit dem Operator %
durch 7 teilbar ist.
Wir selektieren alle Elemente im Array, bei denen der Rest nach Division durch 7 gleich Null ist.
Code:
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)
Nach der Ausführung sehen wir, dass wir ein Array von booleschen Werten erstellt haben. Wenn wir uns das erste Element eines Arrays ansehen, das -12 ist, ist nicht durch 7 teilbar, und das nächste ist es auch nicht, aber das erste Element in der zweiten Liste ist 7, das durch 7 teilbar ist, und das zweite Element 0 ist auch durch 7 teilbar.
Daher sind beide Elemente bis auf andere Elemente True
, weil alle Elemente nicht durch 7 teilbar sind, weshalb wir False
-Werte an ihren Positionen erhalten haben.
Ausgang:
[[False False False]
[ True True False]]
In diesem folgenden Beispiel erstellen wir eine Variable namens Sun_array
, und dies wären wesentliche Elemente von Booleschen Maskenarrays. Wir nehmen My_2DArray
und indizieren es mit den Ergebnissen, die wir in zero_mod_array
erstellt haben.
Code:
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)
Ausgang:
[7 0]
Lassen Sie uns Sun_array
als Maskenarray verwenden, um sich selbst zu indizieren, indem wir die Elemente in Sun_array
auswählen, die größer als 0 sind, und ein neues Array erstellen, das nur die positiven Elemente enthält.
Sun_array[Sun_array > 0]
In unserem Sun_array
ist nur ein Element grösser als 7 array([7])
. Wenn wir das Sun_array
untersuchen, sehen wir, dass die Werte unverändert sind; es ist immer noch ein array([7, 0])
.
Erstellen Sie eine Maske mit der logischen NumPy-Funktion
Lassen Sie uns eine alternative Methode untersuchen, um die gleiche Aufgabe zu erfüllen. In besonderer Weise werden wir logische NumPy-Operatoren verwenden.
Zuerst erstellen wir eine Variable namens mod_test
, die die Ergebnisse des Restoperators wie oben zuweist.
Wir werden etwas Ähnliches tun und eine weitere Variable namens positive_test
erstellen, und dieses Mal werden wir die Werte zuweisen, bei denen My_2DArray
größer als Null ist, was bedeutet, dass es die booleschen Werte anzeigt, nachdem die Bedingung auf jedes Element von My_2DArray
angewendet wurde. .
Wir erstellen eine weitere Variable namens combined_test
, die die Funktion logical_and()
verwendet und mod_test
und positive_test
als Argumente verwendet.
Code:
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)
Nach der Ausführung sehen wir die perfekten booleschen Werte und es enthält nur einen Wert, der dem Array entspricht.
Ausgang:
[[False False False]
[ True False False]]
Wir können combined_test
verwenden, um unser ursprüngliches Array zu indizieren und den gleichen Wert zu erhalten, den wir oben erreicht haben.
Code:
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])
Ausgang:
[7]
Auf diese Weise können wir das NumPy 2d-Array mit zwei Techniken maskieren, um dasselbe Ergebnis zu erzielen.
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