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 ...
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']
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 ...