Seite 1 von 1
Bedingter Vergleich von numpy arrays
Verfasst: Donnerstag 31. Dezember 2020, 11:04
von st_baum
Ich möchte zählen, wie oft werte in zwei np arrays übereinstimmen kombiniert mit einer Bedingung.
Code: Alles auswählen
ar1 = np.array([1,0,0,1,0,1])
ar2 = np.array([0,1,0,0,0,1])
np.sum(ar1 == ar2)
Hier wird gezählt, wie oft die Werte übereinstimmen. Ich möchte aber, dass unter einer Bedingung gezählt wird. Z.b. das nur gezählt wird, wenn beide arrays den Wert "0" haben, d.h. der Output sollte "2" sein. Ich habe es mit einer Bedingung versucht, das klappt aber nicht und erscheint mir auch etwas klobig.
Re: Bedingter Vergleich von numpy arrays
Verfasst: Donnerstag 31. Dezember 2020, 12:00
von Dennis89
Hallo,
zeig uns doch mal mit welcher Bedingung du das versucht hast. Dann wäre der Lerneffekt größer wie wenn du hier ein fertiges Skript bekommst. (Oder willst du genau das?)
Grüße
Dennis
Re: Bedingter Vergleich von numpy arrays
Verfasst: Donnerstag 31. Dezember 2020, 12:16
von st_baum
Etwas wie:
Funktioniert nicht. Ich vermute, weil nicht durch alle Elemente von ar1 geloopt wird. Hab den Ansatz nicht weiterverfolgt. Bin davon ausgegangen, dass es eine elegantere Lösung gibt.
Re: Bedingter Vergleich von numpy arrays
Verfasst: Donnerstag 31. Dezember 2020, 13:24
von ThomasL
Der Vergleich ar1 == ar2 liefert dir ein Array mit Boolean Werten zurück.
Der Vergleich ar1 == 0 liefert dir auch ein Array mit Boolean Werten zurück
Dieses zweite Array kannst du zur Indizierung des ersten benutzen.
und kannst dann mit sum() alle True Werte addieren.
Re: Bedingter Vergleich von numpy arrays
Verfasst: Donnerstag 31. Dezember 2020, 13:26
von Dennis89
Deine Bedingung fragt ab ob 'ar1' der Wert '1' hat. Du willst aber wissen ob sich dieser Wert in dem Array 'ar1' befindet und nicht ob das Objekt 'ar1' gleich dem Wert '1' ist.
Wenn sich jetzt eine eins indem Array befindet wird dass ausgeführt was du danach in den Namensraum der If-Abfrage schreibst.
Grüße
Dennis
Re: Bedingter Vergleich von numpy arrays
Verfasst: Donnerstag 31. Dezember 2020, 13:59
von Sirius3
Du willst ja zwei Bedingungen miteinander verknüpfen, dass sowohl in ar1 als auch in ar2 eine 0 steht:
Re: Bedingter Vergleich von numpy arrays
Verfasst: Donnerstag 31. Dezember 2020, 18:17
von st_baum
Sirius3 hat geschrieben: ↑Donnerstag 31. Dezember 2020, 13:59
Du willst ja zwei Bedingungen miteinander verknüpfen, dass sowohl in ar1 als auch in ar2 eine 0 steht:
Code: Alles auswählen
((ar1 == 0) & (ar2 == 0)).sum()
[/quote]
Das passt, danke :-)