Python Array Befehl unklar?

... komplette Frage anzeigen

2 Antworten

array[1, x : y]

Holt aus der Matrix "array" die Zeile 1 (wobei darauf zu achten ist, dass die "erste" Zeile, wie in den meisten Programmiersprachen, die Zeile 0 ist), Spalten 0 (inklusiv) bis 100 (exklusiv), d. h. die 0 ist dabei, die 100 selbst nicht mehr.

new1 = numpy.add(test, array[1, x : y]) 

Addiert zu der Matrix "test" den oben genannten Ausschnitt aus "array" und speichert ihn in "new1".

new2 = numpy.add(test, array[1, x : y])

Nochmal das selbe, speichert das Ergebnis allerdings in "new2". Eigentlich eine redundante Berechnung. Warum nicht einfach so?

new2 = numpy.copy(new1)

Dann ...

numpy.subtract(new1, new2)

Subtrahiert die Matrix "new2" von der Matrix "new1". Das Ergebnis ist eine Nullmatrix mit den Dimensionen von "new1" bzw. "new2".

new1 / new2

Dividiert "new1" (elementweise) durch "new2". Hier sollte eine Matrix voller Einsen entstehen (es sei denn, "new2" enthält Nullelemente, dann wird dort etwas, wie "not a number" herauskommen).

numpy.zeros(len(test, array[1, x : y]))

Das kann nicht funktionieren, denn die Funktion "len(...)" nimmt nur ein Argument entgegen, hier sind aber zwei angegeben. Ansonsten würde "numpy.zeros(...)" einen Vektor mit so vielen Nullelementen erzeugen, wie eben als Argument übergeben wurden, aber hier ist das Argument ja gar kein zulässiger Ausdruck.

Bei Numpy-Arrays sollte man allerdings die Attribute ".size" und ".shape" benutzen, anstatt "len(...)". Generell gibt es für so ziemlich jede Python-Funktion entsprechende Numpy-Äquivalente (aber Numpy kann natürlich mehr). Im Zusammenhang mit Numpy-Objekten sollte man natürlich immer die Funktionen von Numpy verwenden und nicht die "builtins" von Python, also beispielsweise auch "numpy.cos(...)" statt "cos(...)" oder "numpy.pi" statt "math.pi".

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von NoHumanBeing
20.01.2016, 10:54

Sollte natürlich heißen ...

Im Zusammenhang mit Numpy-Objekten sollte man natürlich immer die Funktionen von Numpy verwenden und nicht die "builtins" von Python, alsobeispielsweise auch "numpy.cos(...)" statt "math.cos(...)" oder "numpy.pi" statt "math.pi".

Und anstelle von ...

numpy.subtract(new1, new2)

... hätte man auch einfach schreiben können ...

new1 - new2
2

Was möchtest Du wissen?