Hallo,
ich möchte in einem Numpy Array alle Werte die kleiner als 0 sind durch 0 ersetzen.
Gibt es dafür eine Funktion oder muss ich mit einer Schleife alle Elemente darauf prüfen und dann ggf. ersetzen ?
Gruß
Numpy alle Werte <0 durch 0 ersetzen
Das sind IMHO irgendwie Numpy-Grundlagen:
Code: Alles auswählen
In [16]: a = np.random.rand(5, 5)
In [17]: a
Out[17]:
array([[ 0.11389652, 0.31919573, 0.5372963 , 0.41104909, 0.398864 ],
[ 0.93997402, 0.21477407, 0.79465177, 0.46625885, 0.26225517],
[ 0.89957112, 0.90556205, 0.61022601, 0.01855248, 0.86618709],
[ 0.4063321 , 0.47959058, 0.28310037, 0.02436254, 0.74677059],
[ 0.36401501, 0.80976033, 0.76651866, 0.84905229, 0.87081617]])
In [18]: a[a < 0.5] = 0
In [19]: a
Out[19]:
array([[ 0. , 0. , 0.5372963 , 0. , 0. ],
[ 0.93997402, 0. , 0.79465177, 0. , 0. ],
[ 0.89957112, 0.90556205, 0.61022601, 0. , 0.86618709],
[ 0. , 0. , 0. , 0. , 0.74677059],
[ 0. , 0.80976033, 0.76651866, 0.84905229, 0.87081617]])
- mathman
- User
- Beiträge: 92
- Registriert: Mittwoch 19. November 2008, 08:27
- Wohnort: Magdeburg
- Kontaktdaten:
Deine ist viel eleganter
Ich hab da so etwas gemacht
Ich hab da so etwas gemacht
Code: Alles auswählen
def mlf_cut(min, max):
stop = min.shape[0] -1
for i in range(stop):
if min.item(i) > 0:
min.itemset(i,0)
stop = max.shape[0] -1
for i in range(stop):
if max.item(i) < 0:
max.itemset(i,0)
return min, max