Teilen Sie die Matrix durch den Vektor in NumPy

Muhammad Maisam Abbas 30 Januar 2023
  1. Teilen Sie Matrix durch Vektor in NumPy mit der Array-Slicing-Methode in Python
  2. Teilen Sie Matrix durch Vektor in NumPy mit der Transpose-Methode in NumPy
  3. Teilen Sie Matrix durch Vektor in NumPy mit der Funktion numpy.reshape()()
Teilen Sie die Matrix durch den Vektor in NumPy

In diesem Tutorial werden die Methoden zum Dividieren einer Matrix durch einen Vektor in NumPy erläutert.

Teilen Sie Matrix durch Vektor in NumPy mit der Array-Slicing-Methode in Python

Eine Matrix ist ein 2D-Array, während ein Vektor nur ein 1D-Array ist. Wenn wir die Elemente einer Matrix durch die Vektorelemente in jeder Zeile dividieren möchten, müssen wir dem Vektor eine neue Dimension hinzufügen. Wir können dem Vektor mit der Array-Slicing-Methode in Python eine neue Dimension hinzufügen. Das folgende Codebeispiel zeigt uns, wie Sie mit der Array-Slicing-Methode in Python jede Zeile einer Matrix durch einen Vektor teilen.

import numpy as np

matrix = np.array([[2, 2, 2], [4, 4, 4], [6, 6, 6]])

vector = np.array([2, 4, 6])

matrix = matrix / vector[:, None]
print(matrix)

Ausgabe:

[[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]

Zuerst haben wir die Matrix und den Vektor mit der Funktion np.array() erstellt. Anschließend haben wir dem Vektor mit der Slicing-Methode eine neue Achse hinzugefügt. Wir haben dann die Matrix durch das Array geteilt und das Ergebnis in der Matrix gespeichert.

Teilen Sie Matrix durch Vektor in NumPy mit der Transpose-Methode in NumPy

Wir können die Matrix auch transponieren, um jede Zeile der Matrix durch jedes Vektorelement zu teilen. Danach können wir das Ergebnis transponieren, um zur vorherigen Orientierung der Matrix zurückzukehren. Siehe das folgende Codebeispiel.

import numpy as np

matrix = np.array([[2, 2, 2], [4, 4, 4], [6, 6, 6]])

vector = np.array([2, 4, 6])

matrix = (matrix.T / vector).T
print(matrix)

Ausgabe:

[[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]

Im obigen Code haben wir eine Transponierte der Matrix genommen und sie durch den Vektor geteilt. Danach haben wir das Ergebnis transponiert und in der matrix gespeichert.

Teilen Sie Matrix durch Vektor in NumPy mit der Funktion numpy.reshape()()

Die ganze Idee hinter diesem Ansatz ist, dass wir zuerst den Vektor in ein 2D-Array konvertieren müssen. Mit der Funktion numpy.reshape() kann der Vektor in ein 2D-Array umgewandelt werden, wobei jede Zeile nur ein Element enthält. Wir können dann leicht jede Zeile der Matrix durch jede Zeile des Vektors dividieren.

import numpy as np

matrix = np.array([[2, 2, 2], [4, 4, 4], [6, 6, 6]])

vector = np.array([2, 4, 6])

matrix = matrix / vector.reshape((3, 1))
print(matrix)

Ausgabe:

[[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]

Im obigen Code haben wir den vector mit der Funktion np.reshape() in ein 2D-Array umgewandelt. Danach haben wir die matrix durch den vector geteilt und das Ergebnis in der matrix gespeichert.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Verwandter Artikel - NumPy Vector

Verwandter Artikel - NumPy Matrix