Probleme mit if schleife

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
TobiFrischling
User
Beiträge: 13
Registriert: Dienstag 6. Februar 2018, 10:33

Hi Community ,

ich habe jetzt versucht eine Idee umzusetzen , aber leider ohne richtig erfolg damit zu haben :(

Code: Alles auswählen

sv=np.array([np.nan,2,4,3,1,6,7,5])
V=np.array([1,2,3,4,5])

if sv[:0] == np.nan:
    l= np.repeat(0,len(V))
else:
    l = sv[1:]

print(l)
AUSGABE : -> [ 2. 4. 3. 1. 6. 7. 5.]


ich versuche es noch einmal zu erklären, also falls das erste Element von sv gleich NA ist , dann konstruiere ein Vektor l mit nur Nullen und der Länge von V
und falls nicht dann konstruiere l als sv ohne das erste Element


ABER: ich kann echt nicht die Ausgabe verstehen , ich mein die Syntax ist korrekt und alles scheint in Ordnung zu sein
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

du verwendest das Slicing falsch (bzw der Einsatz ist falsch hier). `[:0]` bedeutet "vom Anfang des Arrays bis zum Element mit Index 0, exklusive letzterem". Das ist halt eine leeres Array. Wenn du das erste Elemente (=Index 0) haben willst, dann musst du nur dieses referenzieren.

[codebox=pycon file=Unbenannt.txt]>>> import numpy as np
>>> sv = np.array([np.nan, 1, 2, 3])
>>> sv[:0]
array([], dtype=float64)
>>> sv[0]
nan[/code]

Den Array mit Nullen schreibt man eleganter so:

[codebox=pycon file=Unbenannt.txt]>>> np.zeros(len(V), dtype=int)
array([0, 0, 0])[/code]

Und zum Titel " Probleme mit if schleife" siehe: Link.

Gruß, noisefloor
TobiFrischling
User
Beiträge: 13
Registriert: Dienstag 6. Februar 2018, 10:33

:lol: :lol: okay dass mit der Schleife war dumm

Okay ,danke :D
aber jetzt habe ich anstatt sv[:0] einfach mal sv[0] geschrieben
trotzdem bleibt meine Ausgabe gleich ..... eigentlich müsste ein l Vektor kommen der nur nan als einträge hat mit der länge von V
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

axo - testen auf "Nan" funktioniert so:

[codebox=pycon file=Unbenannt.txt]>>> np.isnan(sv[0])
True
>>>[/code]

Gruß, noisefloor
TobiFrischling
User
Beiträge: 13
Registriert: Dienstag 6. Februar 2018, 10:33

Danke :D
klappt
Antworten