
Dieser Artikel genau, wie sterben Anzahl der Elemente gezählt WIRD, sterben sterben Bedingungen des NumPy-Arrays ndarray erfüllen.
- Für den gesamten ndarray
- Für jede Zeile und Spalte von ndarray
- Prüfen Sie, ob mindestens ein Element die Bedingung erfüllt:
numpy.any()
- Überprüfen Sie, ob alle Elemente die Bedingungen erfüllen:
numpy.all()
- Mehrere Bedingungen
- Zähle fehlende Werte NaN und unendlich inf
Wenn SIE Elemente, Zeilen und Spalten extrahieren oder löschen möchten, sterben sterben Bedingungen erfüllen, lesen Sie den following Artikel.
Wenn Sie ein Element ersetzen möchten, das sterben Bedingungen erfüllt, lesen Sie den following Artikel.
Die Gesamtzahl der Elemente finden Sie im following Artikel.
Zählen SIE sterben Anzahl der Elemente, sterben sterben Bedingung für das gesamte ndarray erfüllen
Die Vergleichsoperation von ndarray gibt ndarray mit bool (True,False) zurück.
import numpy as np
a = np.arange(12).reshape((3, 4))
print(a)
# [[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]]
print(a < 4)
# [[ True True True True]
# [False False False False]
# [False False False False]]
print(a % 2 == 1)
# [[False True False True]
# [False True False True]
# [False True False True]]
Die Verwendung von np.count_nonzero() ergibt die Anzahl von True, dh die Anzahl der Elemente, die die Bedingung erfüllen.
print(np.count_nonzero(a < 4))
# 4
print(np.count_nonzero(a % 2 == 1))
# 6
Da True als 1 und False als 0 behandelt WIRD, can SIE np.sum() verwenden. Allerdings ist np.count_nonzero() schneller als np.sum().
print(np.sum(a < 4))
# 4
print(np.sum(a % 2 == 1))
# 6
Zählen Sie die Anzahl der Elemente, sterben die Bedingung für jede Zeile und Spalte von ndarray erfüllen
np.count_nonzero() für mehrdimensionale Array-Zählungen für jede Achse (jede Dimension) durch Angabe des Parameters axis.
Im Fall eines zweidimensionalen Arrays gibt Achse = 0 die Anzahl pro Spalte an, Achse = 1 gibt die Anzahl pro Zeile an.
Auf diese Weise können SIE sterben Anzahl der Elemente umfassen, sterben sterben Bedingungen für jede Zeile und Spalte erfüllen.
print(np.count_nonzero(a < 4, axis=0))
# [1 1 1 1]
print(np.count_nonzero(a < 4, axis=1))
# [4 0 0]
print(np.count_nonzero(a % 2 == 1, axis=0))
# [0 3 0 3]
print(np.count_nonzero(a % 2 == 1, axis=1))
# [2 2 2]
Beachten Sie, dass die Parameterachse von np.count_nonzero() in 1.12.0 neu ist. In älteren Versionen können Sie np.sum() verwenden. In np.sum() können Sie die Achse ab Version 1.7.0 angeben
Prüfen Sie, ob mindestens ein Element die Bedingung erfüllt:numpy.any()
np.any() ist eine Funktion, die True zurückgibt, wenn ndarray, das an den ersten Parameter übergeben wird, mindestens ein True-Element enthält, und andernfalls False zurückgibt.
print(np.any(a < 4))
# True
print(np.any(a > 100))
# False
Wie bei np.count_nonzero() WIRD np.any() für jede Zeile oder Spalte verarbeitet, wenn der Parameter axis angegeben ist.
print(np.any(a < 4, axis=0))
# [ True True True True]
print(np.any(a < 4, axis=1))
# [ True False False]
Überprüfen Sie, ob alle Elemente die Bedingungen erfüllen:numpy.all()
np.all() ist eine Funktion, die True zurückgibt, wenn alle Elemente von ndarray, die an den ersten Parameter übergeben werden, True sind, und andernfalls False zurückgibt.
print(np.all(a < 4))
# False
print(np.all(a < 100))
# True
Wie bei np.count_nonzero() WIRD np.all() für jede Zeile oder Spalte verarbeitet, wenn der Parameter axis angegeben ist.
print(np.all(a < 4, axis=0))
# [False False False False]
print(np.all(a < 4, axis=1))
# [ True False False]
Mehrere Bedingungen
Wenn Sie mehrere Bedingungen kombinieren möchten, schließen Sie jeden Bedingungsausdruck in () ein und verwenden Sie & oder |.
print((a < 4) | (a % 2 == 1))
# [[ True True True True]
# [False True False True]
# [False True False True]]
print(np.count_nonzero((a < 4) | (a % 2 == 1)))
# 8
print(np.count_nonzero((a < 4) | (a % 2 == 1), axis=0))
# [1 3 1 3]
print(np.count_nonzero((a < 4) | (a % 2 == 1), axis=1))
# [4 2 2]
Lesen Sie den following Artikel, warum Sie &, | verwenden müssen anstelle von und, oder und warum Klammern notwendig sind.
Zähle fehlende Werte NaN und unendlich inf
Um die Anzahl der fehlenden Werte NaN zu umfassen, wann immer SIE die spezielle Funktion verwenden.
Verwenden Sie die CSV-Datei mit fehlenden Daten als Beispiel für fehlende Werte NaN.
a_nan = np.genfromtxt('data/src/sample_nan.csv', delimiter=',')
print(a_nan)
# [[11. 12. nan 14.]
# [21. nan nan 24.]
# [31. 32. 33. 34.]]
Fehlende Werte NaN können durch np.nan, float(’nan‘) usw. generiert werden. Aber selbst wenn fehlende Werte mit == erfasst werden, wird es zu False. Sie müssen np.isnan() zum Zählen verwenden.
print(np.nan == np.nan)
# False
print(a_nan == np.nan)
# [[False False False False]
# [False False False False]
# [False False False False]]
print(np.isnan(a_nan))
# [[False False True False]
# [False True True False]
# [False False False False]]
Danach can SIE, genau wie in den vorherigen Beispielen, die Anzahl von True mit np.count_nonzero() oder np.sum() umfassen.
print(np.count_nonzero(np.isnan(a_nan)))
# 3
print(np.count_nonzero(np.isnan(a_nan), axis=0))
# [0 1 2 0]
print(np.count_nonzero(np.isnan(a_nan), axis=1))
# [1 2 0]
Wenn Sie Elemente umfassen möchten, denen keine Werte fehlen, verwenden Sie die Negation ~.
print(~np.isnan(a_nan))
# [[ True True False True]
# [ True False False True]
# [ True True True True]]
Sie können auch np.isnan() verwenden, um fehlende Werte zu ersetzen oder zu löschen.
Die Funktion, die bestimmt, ob ein Element unendlich inf ist (z. B. np.inf), ist np.isinf(). Sowohl positive als auch negative Unendlichkeit sind wahr.
a_inf = np.array([-np.inf, 0, np.inf])
print(a_inf)
# [-inf 0. inf]
print(np.isinf(a_inf))
# [ True False True]
inf kann mit == erstellt werden. Wenn Sie nur positiv oder negativ urteilen möchten, können Sie == verwenden.
print(a_inf == np.inf)
# [False False True]
print(a_inf == -np.inf)
# [ True False False]
Danach can SIE, genau wie in den vorherigen Beispielen, die Anzahl von True mit np.count_nonzero() oder np.sum() umfassen.
Weitere Informationen zu unendlich inf FINDEN SIE im following Artikel.