[PYTHON] Ruft Zeilen mit bestimmten Elementen in np.where ab

Ich verwende oft Pythons Numpy, um Textprotokolle zu formatieren, aber zu diesem Zeitpunkt finde ich oft heraus, worauf ich gestoßen bin (was ist, wenn ich es einmal löse)? Aber ich möchte den Punkt korrigieren, dass ich denke, dass es in Ordnung ist ...), ich werde es als Memorandum über die Verwendung des Rückgabewerts von np.where belassen, was selbst dann schwer herauszukommen ist, wenn ich es zu diesem Zeitpunkt überprüfe. Bitte verzeihen Sie, dass der Inhalt billig ist ...

Ruft Zeilen mit bestimmten Elementen in np.where ab

Erstens kann der Rückgabewert von np.where die Indexinformationen abrufen. Lassen Sie uns das mit einem zweidimensionalen Numpy-Array sehen.

test1.py


import numpy as np 

array = np.array([["a","b","c"],["d","e","f"],[1,2,3]])

print(np.where(array == "d"))

Ausführungsergebnis


$ python test1.py
(array([1]), array([0]))

Das Ergebnis dieser Ausführung zeigt visuell, dass sich die Zeichenfolge "d" im "Array [1] [0]" des numpy-Arrays "Array" befindet. Lassen Sie uns unten sehen, wie dieser Rückgabewert tatsächlich behandelt wird.

test2.py


import numpy as np 

array = np.array([["a","b","c"],["d","e","f"],[1,2,3]])

print(np.where(array == "d"))
print(type(np.where(array == "d")))
print(np.where(array == "d")[0])
print(np.where(array == "d")[1])
print(np.where(array == "d")[0][0])
print(np.where(array == "d")[1][0])

Ausführungsergebnis


$ python test2.py
(array([1]), array([0]))
<class 'tuple'>
[1]
[0]
1
0

Daher ist der Rückgabewert von "np.where" ein Tupel, und es ist erforderlich, den Index entsprechend dem gewünschten Wert entsprechend anzugeben.

Dieses Mal möchten wir die Zeile (= 1) angeben, in der sich die Zeichenfolge d befindet, also verwenden wir np.where (array ==" d ") [0] [0].

test3.py


import numpy as np 

array = np.array([["a","b","c"],["d","e","f"],[1,2,3]])

print(array[np.where(array == "d")[0][0]][:])

Ausführungsergebnis


$ python test3.py
['d' 'e' 'f']

Bonus

Ich werde auch schreiben, dass ich mit np.where verschiedene Dinge ausprobiert habe.

test4.py


import numpy as np 

array = np.array([["a","b","c"],["d","e","f"],[1,2,3]])

print(array[np.where(array == "d")])

Ausführungsergebnis


$ python test4.py
['d']

Wenn Sie es direkt eingeben, wenn Sie den Index des numpy-Arrays angeben, wird das angegebene Element in dem Zustand zurückgegeben, in dem es sich im Array befindet.

Dies gibt uns jedoch nicht den Wert "d".

Um d selbst zu erhalten, müssen Sie den Index des zurückgegebenen Arrays wie folgt angeben.

test5.py


import numpy as np 

array = np.array([["a","b","c"],["d","e","f"],[1,2,3]])

print(array[np.where(array == "d")][0])

Ausführungsergebnis


$ python test5.py
d

Bisher besteht der Zweck der Verwendung von np.where darin, einen Index zu erhalten, der ein bestimmtes Element enthält. Ich habe das Gefühl, dass ich es nicht so verwenden kann, aber bitte verzeihen Sie mir als Bonus ...

Recommended Posts

Ruft Zeilen mit bestimmten Elementen in np.where ab
Extrahieren Sie mit Pandas Zeilen, die eine bestimmte "Zeichenfolge" enthalten
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste
Ich bekomme einen UnicodeDecodeError mit mecab-python3
Zählen Sie bestimmte Zeichenfolgen in einer Datei
Ich erhalte einen KeyError in pyclustering.xmeans
Speichern Sie eine bestimmte Variable in tensorflow.session
Holen Sie sich Boolean mit Flask-Anfrage
So erhalten Sie mit pandas DataFrame einen bestimmten Spaltennamen und Indexnamen
Wie bekomme ich Stacktrace in Python?
Holen Sie sich eine Unicode-JSON-Zeichenfolge mit Japanisch.
Ich kann das Element in Selen nicht bekommen!
Holen Sie sich ein Zeichen für Conoha mit Python
Holen Sie sich eine Domain, die einer bestimmten Organisation gehört
Wenn verzweigen, hängt davon ab, ob die Liste ein bestimmtes Element enthält
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Wenn ich einen Chrom-Treiberfehler in Selenium bekomme
Lesen Sie eine Datei mit verstümmelten Linien in Python
Holen Sie sich den Aufrufer einer Funktion in Python
Holen Sie sich nur Unterklassenelemente in eine Liste
Klonen Sie mit einem bestimmten Zweig / Tag in GitPython
Holen Sie sich ein Panoramabild in Google Street View
Lassen Sie uns einen Teil des maschinellen Lernens mit Python berühren
Geben Sie einen bestimmten Wert für die Variable im Tensorflow ein
Erstellen Sie in Python ein Paket mit globalen Befehlen
So zählen Sie Zahlen in einem bestimmten Bereich
Ich erhalte eine java.util.regex.PatternSyntaxException, wenn ich einen String in PySpark teile
[Python] Rufen Sie das Element ab, indem Sie das Namensattribut in BeautifulSoup angeben
Speichern Sie Tweets mit bestimmten Schlüsselwörtern auf Twitter als CSV
BigQuery - Wenn Sie einen Grund erhalten: responseTooLarge-Fehler in Python
Rufen Sie die Benutzer-ID und den Bildschirmnamen des Teilnehmers in Slack ab
Stoppen Sie eine Instanz mit einem bestimmten Tag in Boto3
Ruft den Wert eines bestimmten Schlüssels bis zum angegebenen Index der Wörterbuchliste in Python ab
Python-Programm, das täglich Tweets mit bestimmten Schlüsselwörtern sammelt und in CSV speichert