Divida Matriz por Vetor em NumPy

Muhammad Maisam Abbas 30 janeiro 2023
  1. Divida Matriz por Vetor em NumPy Com o Método de Fatiamento Array em Python
  2. Divida Matrix por Vetor em NumPy Com o Método Transpose em NumPy
  3. Divida a matriz pelo vetor em NumPy com a função numpy.reshape()
Divida Matriz por Vetor em NumPy

Este tutorial irá discutir os métodos para dividir um array por um vetor em NumPy.

Divida Matriz por Vetor em NumPy Com o Método de Fatiamento Array em Python

um array é um array 2D, enquanto um vetor é apenas um array 1D. Se quisermos dividir os elementos de um array pelos elementos do vetor em cada linha, temos que adicionar uma nova dimensão ao vetor. Podemos adicionar uma nova dimensão ao vetor com o método de divisão de array em Python. O exemplo de código a seguir nos mostra como dividir cada linha de um array por um vetor com o método de divisão de array em 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)

Resultado:

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

Primeiro criamos a matriz e o vetor com a função np.array(). Em seguida, adicionamos um novo eixo ao vetor com o método de fatiamento. Em seguida, dividimos a matriz pelo array e salvamos o resultado dentro do array.

Divida Matrix por Vetor em NumPy Com o Método Transpose em NumPy

Também podemos transpor a matriz para dividir cada linha do array por cada elemento do vetor. Depois disso, podemos transpor o resultado para retornar à orientação anterior do array. Veja o seguinte exemplo de código.

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)

Resultado:

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

No código acima, pegamos uma transposta do array e a dividimos pelo vetor. Depois disso, pegamos uma transposição do resultado e o armazenamos dentro da matrix.

Divida a matriz pelo vetor em NumPy com a função numpy.reshape()

Toda a ideia por trás dessa abordagem é que primeiro temos que converter o vetor em um array 2D. A função numpy.reshape() pode ser usada para converter o vetor em um array 2D onde cada linha contém apenas um elemento. Podemos então dividir facilmente cada linha do array por cada linha do vetor.

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)

Resultado:

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

No código acima, convertemos o vector em um array 2D com a função np.reshape(). Depois disso, dividimos a matriz pelo vector e armazenamos o resultado dentro da matriz.

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

Artigo relacionado - NumPy Vector

Artigo relacionado - NumPy Matrix