Verändlerliche Listen addieren
Das kannst ich noch nicht, danke. Aber wie kann ich damit den Zwischenschritt sparen?BlackJack hat geschrieben:@Zizibee: Ich würde ja `numpy.zeros` verwenden, dann spart man sich die Listen mit den 16K Nullen als Zwischenschritt.
Macht numpy.zeros(5) nicht das gleiche wie numpy.array(5*[0])?
Würdest du das evtl. noch etwas genauer erklären? Muss ich die Größe des Arrays nicht immer definieren, damit es anschließend mit der Addition funktioniert?Sirius3 hat geschrieben:ich würde ja 0 nehmen, dann spart man sich die Gedanken darüber, wie groß denn nun das Array tatsächlich sein muß.
@Sirius3:
Das hatte ich natürlich vorher ausprobiert, bekam aber immer einen Fehler in der Art:
Traceback (most recent call last):
File "python", line 1, in <module>
ValueError: operands could not be broadcast together with shapes (5,) (0,)
Jetzt hat es aber "plötzlich" doch geklappt, danke.
Das hatte ich natürlich vorher ausprobiert, bekam aber immer einen Fehler in der Art:
Traceback (most recent call last):
File "python", line 1, in <module>
ValueError: operands could not be broadcast together with shapes (5,) (0,)
Jetzt hat es aber "plötzlich" doch geklappt, danke.
@Zizibee: Bei ``array(5*[0])`` wird zuerst eine Python-Liste mit 5 Python-`int`-Werten erstellt. Diese Liste wird `array()` als Argument übergeben. Das schaut sich jedes Element der Liste an welchen Typ das hat um den `dtype` für das `array` zu ermitteln. Dann schaut es sich die Länge der Liste an um den Speicher für die Daten zu belegen. Dann wird wieder die Liste durchgegangen und jeder Wert wird in den `dtype` des Arrays umgewandelt und in dem Array gespeichert.
Bei `zeros(5)` wird Speicher für 5 Elemente vom `dtype` `float` belegt. Und dieser Speicher wird mit 5 Nullwerten initialisiert.
Bei `zeros(5)` wird Speicher für 5 Elemente vom `dtype` `float` belegt. Und dieser Speicher wird mit 5 Nullwerten initialisiert.