Seite 1 von 1
Arrays durchlaufen
Verfasst: Mittwoch 28. Mai 2014, 16:58
von sausage
Hallo,
mein Problem scheint einfach zu sein, aber ich kriege es als Pythonneuling leider nicht hin und bin für eure Hilfe sehr dankbar.
Ich habe ein Array von Typ float64 und Länge über 400. Dieser Array enthält positive und negative Zahlen und auch Nullen. Diesen Array möchte ich so durchgehen, dass ich positive, negative und Nullen getrennt in ein Array speichere.
Wenn ich z.B. für positive Zahlen versuche,
Code: Alles auswählen
for i in gross_array:
if i>0:
array_positiv= i
print array_positiv
dann wird irgendeine, aber nur eine Zahl in array_positiv gespeichert.
Was mache ich falsch, wie sollte es richtig aussehen?
vielen Dank im Voraus!
Re: Arrays durchlaufen
Verfasst: Mittwoch 28. Mai 2014, 17:26
von BlackJack
@sausage: Du solltest vielleicht mal ein Grundlagentutorial zu Python durcharbeiten, und danach dann das von Numpy. Das ist nämlich grundsätzlich eine Frage die sich dann nicht stellen würde.
Re: Arrays durchlaufen
Verfasst: Donnerstag 29. Mai 2014, 08:31
von sausage
Ein Tutorium hab ich natürlich gemacht, aber diese Indexing habe ich nicht verstanden. vor allem wenn ich diesen Code im Konsole eingebe kommen die ganzen positiven Zahlen raus, aber in array_positiv wird nur eine einzige Zahl gespeichert. Das kann ich mir nicht erklären.
Re: Arrays durchlaufen
Verfasst: Donnerstag 29. Mai 2014, 08:38
von Darii
Warum glaubst du denn, dass da mehr als eine Zahl gespeichert sein sollte?
Also was du falsch machst ist, dass du nur einer Variable einen neuen Wert zuweist. Du willst aber einer liste einen neuen Wert anhängen.
Re: Arrays durchlaufen
Verfasst: Donnerstag 29. Mai 2014, 08:39
von 0x68
Weil du das "Array" als Variable behandelst.
So hast du immer den letzten Wert der Itteration in der Variable.
Re: Arrays durchlaufen
Verfasst: Donnerstag 29. Mai 2014, 09:31
von sausage
@alle
naja, wenn ich das folgende mache
Code: Alles auswählen
a= ([1,2,3,4, 14,21,9,0,-1,4,-5,-22,3,0,-4,-5])
for i in a:
if i>0:
arr=[]
arr.append(i)
print arr
kommt
Code: Alles auswählen
[1]
[2]
[3]
[4]
[14]
[21]
[9]
[9]
[9]
[4]
[4]
[4]
[3]
[3]
[3]
[3]
raus. Also kann ich den Befehl append() auch nicht benutzen.
Re: Arrays durchlaufen
Verfasst: Donnerstag 29. Mai 2014, 09:34
von Hyperion
Was glaubst Du passiert in Zeile 4?
(Im übrigen sind das keine Arrays sondern Listen - Arrays gibt es in Python auch, aber die verwendest Du hier nicht!)
Re: Arrays durchlaufen
Verfasst: Donnerstag 29. Mai 2014, 09:39
von sausage
mit Zeile 4 lege ich ein leeres Array, wenn ich arr= array([]) oder eine Liste wenn ich arr=[] schreibe. An diesem leeren Array oder dieser leeren Liste versuche ich meine positiven Elemente anzuhängen.
Re: Arrays durchlaufen
Verfasst: Donnerstag 29. Mai 2014, 09:46
von sausage
Könnt ihr mir bitte in 'Python-Sprache' helfen? Ich komme einfach nicht auf die Lösung

Re: Arrays durchlaufen
Verfasst: Donnerstag 29. Mai 2014, 09:46
von Hyperion
Dann geh das mal auf einem Blatt Papier mit dem Stift durch! Nach dem zweiten Element sollte Dir klar sein, dass da etwas nicht so klappt, wie Du Dir das denkst!
Also schreibe Dir für die Schleife links einfach "for" hin und daneben eben "i= " mit dem aktuellen Wert. Danach für das if die tatsächlichen Werte und daneben ob das nun ``true`` oder ``false`` ergibt. Wenn das ``true ist, dann schreibe genau auf, was dann passiert.
Danach machst Du mit dem nächsten Element weiter usw.
Re: Arrays durchlaufen
Verfasst: Donnerstag 29. Mai 2014, 10:38
von pillmuncher
sausage hat geschrieben:Code: Alles auswählen
a= ([1,2,3,4, 14,21,9,0,-1,4,-5,-22,3,0,-4,-5])
for i in a:
if i>0:
arr=[]
arr.append(i)
print arr
Mal eine Variation darüber, in Pseudocode:
Code: Alles auswählen
Personen = ['anna', 'bernd', 'carla', 'dieter']
für jede Person in Personen:
Person hält sich ein Taxi an
Person steigt in das Taxi
Wieviele Taxis werden da angehalten und wieviele Personen sitzen anschließend in jedem Taxi? Und wieviele hier?
Code: Alles auswählen
Personen = ['anna', 'bernd', 'carla', 'dieter']
Personen halten sich zusammen ein Taxi an
für jede Person in Personen:
Person steigt in das Taxi
Re: Arrays durchlaufen
Verfasst: Donnerstag 29. Mai 2014, 10:42
von Hyperion
Nette Analogie... für das Problem oben könnte man das noch um folgendes erweitern:
Code: Alles auswählen
Personen = ['anna', 'bernd', 'carla', 'dieter']
Personen halten sich zwei Taxis an
für jede Person in Personen:
wenn Person ist weiblich:
Person steigt in das eine Taxi
sonst
Person steigt in das andere Taxi