Dividi matrice per vettore in NumPy

Muhammad Maisam Abbas 30 gennaio 2023
  1. Dividi matrice per vettore in NumPy con il metodo Array Slicing in Python
  2. Dividi matrice per vettore in NumPy con il metodo di trasposizione in NumPy
  3. Dividi matrice per vettore in NumPy con la funzione numpy.reshape()
Dividi matrice per vettore in NumPy

Questo tutorial discuterà i metodi per dividere una matrice per un vettore in NumPy.

Dividi matrice per vettore in NumPy con il metodo Array Slicing in Python

Una matrice è una matrice 2D, mentre un vettore è solo una matrice 1D. Se vogliamo dividere gli elementi di una matrice per gli elementi del vettore in ogni riga, dobbiamo aggiungere una nuova dimensione al vettore. Possiamo aggiungere una nuova dimensione al vettore con il metodo di suddivisione dell’array in Python. Il seguente esempio di codice ci mostra come dividere ogni riga di una matrice per un vettore con il metodo di affettatura dell’array in Python.

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)

Produzione:

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

Per prima cosa abbiamo creato la matrice e il vettore con la funzione np.array(). Abbiamo quindi aggiunto un nuovo asse al vettore con il metodo dello slicing. Abbiamo quindi diviso la matrice per l’array e salvato il risultato all’interno della matrice.

Dividi matrice per vettore in NumPy con il metodo di trasposizione in NumPy

Possiamo anche trasporre la matrice per dividere ogni riga della matrice per ciascun elemento del vettore. Successivamente, possiamo trasporre il risultato per tornare all’orientamento precedente della matrice. Vedere il seguente esempio di codice.

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)

Produzione:

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

Nel codice sopra, abbiamo preso una trasposizione della matrice e l’abbiamo divisa per il vettore. Successivamente, abbiamo trasposto il risultato e l’abbiamo memorizzato all’interno della matrice.

Dividi matrice per vettore in NumPy con la funzione numpy.reshape()

L’idea alla base di questo approccio è che dobbiamo prima convertire il vettore in un array 2D. La funzione numpy.reshape() può essere utilizzata per convertire il vettore in un array 2D in cui ogni riga contiene un solo elemento. Possiamo quindi facilmente dividere ogni riga della matrice per ogni riga del vettore.

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)

Produzione:

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

Nel codice sopra, abbiamo convertito il vector in un array 2D con la funzione np.reshape(). Successivamente, abbiamo diviso la matrix per il vector e memorizzato il risultato all’interno della matrix.

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

Articolo correlato - NumPy Vector

Articolo correlato - NumPy Matrix