Seite 1 von 1
Betrag von Vektor
Verfasst: Donnerstag 5. August 2010, 13:25
von mzh
Hallo zusammen
Das ist ein Vektor a:
Code: Alles auswählen
0.144
1.237
0.458
0.855
0.304
0.265
0.244
0.234
0.153
0.145
0.138
0.464
0.228
0.398
0.242
0.219
0.322
0.185
0.109
Davon will ich den Betrag ausrechnen. Gibt es keine Lösung, dass ohne
val erst deklariert werden muss? Ich bin nicht sicher, aber gibt es da nicht ein numpy Trick?
Besten Dank für Hinweise.
Re: Betrag von Vektor
Verfasst: Donnerstag 5. August 2010, 13:46
von cofi
Bis jemand eine numpy-Loesung hat:
Re: Betrag von Vektor
Verfasst: Donnerstag 5. August 2010, 13:53
von BlackJack
@mzh: Vielleicht nicht die beste, aber immerhin eine "`numpy`-Lösung":
Code: Alles auswählen
In [567]: math.sqrt((a * a).sum())
Out[567]: 1.8745943561208116
Re: Betrag von Vektor
Verfasst: Donnerstag 5. August 2010, 14:07
von gkuhl
Weitere ''numpy''-Lösungen:
Code: Alles auswählen
In [21]: from numpy.linalg import norm
In [22]: import numpy
In [23]: v
Out[23]:
array([ 0.144, 1.237, 0.458, 0.855, 0.304, 0.265, 0.244, 0.234,
0.153, 0.145, 0.138, 0.464, 0.228, 0.398, 0.242, 0.219,
0.322, 0.185, 0.109])
In [24]: numpy.sqrt((v**2).sum(axis=0))
Out[24]: 1.8745943561208116
In [25]: norm(v)
Out[25]: 1.8745943561208116
Grüße
Gerrit
Re: Betrag von Vektor
Verfasst: Donnerstag 5. August 2010, 14:44
von mzh
norm() is a definitely a nice guy.
Re: Betrag von Vektor
Verfasst: Freitag 6. August 2010, 03:21
von gkuhl
Leider hat ``norm`` (noch) kein ``axis``-Keyword, daher sollte man die alternative Lösung im Kopf behalten, falls man mal ein Vektorfeld normieren will.