Norm eines Arrays mit Numpy finden

Norm eines Arrays mit Numpy finden

In diesem Beitrag beschreibe ich, die Norm eines numpigen Arrays zu finden. Die Norm eines Arrays ist eine Funktion, die das Array einer nicht negativen reellen Zahl ordnet. Um die Norm eines Numpy -Arrays zu finden, verwenden wir den Numpy's Numpy.Linalg.Normmethode. Die Methode nimmt ein Array oder ein Array-ähnliches Objekt (z. B. Python-Listen) als Eingabe an und gibt einen Float oder ein Array von Normwerten zurück.

Lassen Sie uns ein Beispiel sehen.

$ python3
Python 3.8.5 (Standard, 8. März 2021, 13:02:45)
[GCC 9.3.0] auf Linux2
Geben Sie "Hilfe", "Copyright", "Credits" oder "Lizenz" für weitere Informationen ein.
>>> Numph als NP importieren
>>> a = np.Linspace (-4, 4, 9)
>>> a
Array ([-4., -3., -2., -1., 0., 1., 2., 3., 4.]))
>>> np.Linalg.Norm (a)
7.745966692414834

Die von Numpy berechnete Standardnorm ist das L2-Norm, das auch als euklidische Norm bezeichnet wird. Die Reihenfolge der Norm kann unter Verwendung des an Numpy gelieferten ord -Parameters angegeben werden.Linalg.Norm. Fortsetzung von oben,

>>> np.Linalg.Norm (a, ord = 1)
20.0

Die obige Anweisung berechnete Norm 1. Norm 1 ist einfach die Summe der absoluten Werte des Arrays. Im Allgemeinen wird die Norm eines Vektors für eine Bestellanordnung berechnet wie bei:

(∑i | x | ord) 1/ord

Wobei die Summe über den Absolutwert jedes Elements des Arrays durchgeführt wird. Man kann die Infinity -Norm berechnen, die NP umgeht.Inf als Auftrag. Norm Unendlichkeit ist der maximale Absolutwert aller Elemente im Array.

>>> np.Linalg.Norm (a, ord = np.inf)
4.0

Angenommen, wir haben eine Matrix, für die die Norm berechnet werden sollte.

>>> a = np.Linspace (-4, 4, 9).Umformung (3, 3)
>>> a
Array ([-4., -3., -2.],
[-1., 0., 1.],
[2., 3., 4.]]))
>>> np.Linalg.Norm (a)
7.745966692414834

Das obige gibt die euklidische Norm zurück, die über die gesamte Matrix berechnet wurde. Es gibt jedoch Szenarien, in denen wir Normen über eine bestimmte Achse berechnen müssen. Numpy ermöglicht es auch, eine Parameterachse zu verwenden, um eine Achse anzugeben, an der die Norm für Matrizen berechnet werden kann. Mit der Parameterachse kann man die Achse übergeben, über die die Norm berechnet werden sollte. Achse 0 ist die erste Dimension. Wenn wir Axis = 0 angeben, wird die Norm über die Zeilen berechnet, und wenn wir Axis = 0 angeben, wird die Norm über die Spalten über die Norm berechnet.

>>> a
Array ([-4., -3., -2.],
[-1., 0., 1.],
[2., 3., 4.]]))
>>> np.Linalg.Norm (a, axis = 0)
Array ([4).58257569, 4.24264069, 4.58257569])
>>> np.Linalg.Norm (a, Achse = 1)
Array ([5.38516481, 1.41421356, 5.38516481])

Wenn es sich um eine mehrdimensionale Matrix handelt, kann ein Tupel von Ganzzahlen die Achse angeben, über die die Norm berechnet werden soll.

>>> a = np.Linspace (1, 8, 8).Umform (2, 2, 2)
>>> a
Array ([[1)., 2.],
[3., 4.]]],
[5., 6.],
[7., 8.]]]))
>>> np.Linalg.Norm (A, Achse = (1, 2))
Array ([5.47722558, 13.19090596])
>>> a [0,:,:]
Array ([[1)., 2.],
[3., 4.]]))
>>> np.Linalg.Norm (a [0,::])
5.477225575051661
>>> a [1,:,:]
Array ([[5)., 6.],
[7., 8.]]))
>>> np.Linalg.Norm (a [1,::])
13.19090595827292

Wenn wir im obigen Beispiel Achse = (1,2) angegeben haben.