Minimum Wert auf ein 2d-array in python
Ich habe ein array der folgenden Struktur, die vereinfacht für diese Frage:
8 2 3 4 5 6
3 6 6 7 2 6
3 8 5 1 2 9
6 4 2 7 8 3
Ich möchten, finden Sie den minimalen Wert in diesem 2D-array jedoch mit den integrierten min-Funktion gibt einen Wert zurück Fehler:
ValueError: Die Wahrheit Wert ein array mit mehr als einem element ist mehrdeutig. Verwenden Sie einen.jede() oder eine.alle()
Ich habe mir in der alternative der Verwendung von np.argmin:
https://docs.scipy.org/doc/numpy/reference/generated/numpy.argmin.html
Aber es wertet immer nur entlang einer einzigen Achse, und gibt den index des Minimums entlang einer Zeile/Spalte in der Erwägung, dass möchte ich evaluieren, die das gesamte array und Rückgabe der niedrigste Wert nicht die Indizes.
Ob es möglich ist, kehren die index-Werte der untersten Element im array, dann wäre das vorzuziehen, auch aus, dass der niedrigste Wert, der leicht gefunden werden kann.
EDIT: Danke, die Kommentare unten np.min
ist die Lösung, die ich gesucht hatte, und ich war nicht bewusst vorhandene also meine Antwort ist gelöst.
- Bist du nicht mit
numpy.min
? - Können Sie uns zeigen, funktionierendem code ?
- unter Berücksichtigung der array richtige Antwort
1
? - Oh, ich war nicht bewusst, np.min mit einem eigenen variation, das löst es perfekt danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
numpy.argmin
nicht standardmäßig auswerten entlang einer einzelnen Achse, die Standardeinstellung ist zu bewerten, entlang der abgeflachten matrix und es gibt den linearen index in der abgeflachten array; aus dernumpy
docs, die du verlinkt:Entweder Weg, verwenden
numpy.amin
odernumpy.min
zurück die minimale Wert, oder gleichwertig für ein arrayarrname
verwendenarrname.min()
. Wie Sie bereits erwähnt,numpy.argmin
gibt die index der minimale Wert (natürlich, Sie können, dann verwenden Sie diesen index, um die Rückkehr der minimale Wert von der Indizierung der array mit ihm). Man könnte auch flacher in ein eindimensionales array mitarrname.flatten()
und pass, der in das integriertemin
Funktion.Den vier folgenden Methoden produzieren, was Sie wollen.
Alternativ für ein nicht-numpy Lösung:
np.argmin
Punkte in Richtung numpy. Und ja, ich bin damit einverstanden, dass diese Website, um anderen zu helfen, aber es gibt Plätze für alles. Ich könnte schreiben, hier ein tutorial, um numpy profitieren würden, die jeden Leser, aber das ist nicht der richtige Ort dafür.Können Sie
np.min()
np.min
das ist um Größenordnungen schneller als in pythonmin
und 2) Umformen ist überhaupt nicht notwendig. wenn Sie mit numpy