numpy negative werte auf null setzen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Ich möchte alle negativen Werte in einem numpy-Array auf 0 setzen, gibt es dafür in numpy eine schlichte Methode, die ich einfach nicht finden kann, oder muss ich das Array durchlaufen lassen?
Bevor ich mir irgendeine weniger effiziente Funktion baue wollte ich erstmal Nachfragen, meist überrascht mich numpy dann doch wieder mit Möglichkeiten die ich nicht mal erahnen konnte. :D
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
karolus
User
Beiträge: 140
Registriert: Samstag 22. August 2009, 22:34

Hallo
Ich finde da numpy.maximum(.,.) füttere die mal mit deinem array und einem gleichgrossen [0]-array

Gruß Karo
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Danke, das war genau das richtige.
Edit: Es reicht auch eine einfache Null als zweiter Parameter, es muss kein Null-Array sein.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

Der allgemeine und IMHO einfachere Weg sieht eher so aus:

Code: Alles auswählen

>>> import numpy
>>> a = numpy.random.randint(-9, 9, 10)
>>> a
1: array([-9,  4,  6,  5, -6, -2, -9, -1,  5, -9])
>>> a[a<0] = 0
>>> a
2: array([0, 4, 6, 5, 0, 0, 0, 0, 5, 0])
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Gefällt mir auch gleich nochmal besser, danke dir :D
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Antworten