Dividir matriz por vector en NumPy
- Dividir matriz por vector en NumPy con el método de corte de array en Python
- Dividir matriz por vector en NumPy con el método de transposición en NumPy
-
Dividir matriz por vector en NumPy con la función
numpy.reshape()
Este tutorial discutirá los métodos para dividir un array por un vector en NumPy.
Dividir matriz por vector en NumPy con el método de corte de array en Python
un array es un array 2D, mientras que un vector es solo un array 1D. Si queremos dividir los elementos de un array por los elementos vectoriales en cada fila, tenemos que agregar una nueva dimensión al vector. Podemos agregar una nueva dimensión al vector con el método de corte de array en Python. El siguiente ejemplo de código nos muestra cómo dividir cada fila de un array por un vector con el método de corte de array en 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)
Producción :
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
Primero creamos el array y el vector con la función np.array()
. Luego agregamos un nuevo eje al vector con el método de corte. Luego dividimos el array por el array y guardamos el resultado dentro del array.
Dividir matriz por vector en NumPy con el método de transposición en NumPy
También podemos transponer el array para dividir cada fila del array por cada elemento del vector. Después de eso, podemos transponer el resultado para volver a la orientación anterior del array. Vea el siguiente ejemplo 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)
Producción :
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
En el código anterior, tomamos una transposición del array y la dividimos por el vector. Después de eso, tomamos una transposición del resultado y lo almacenamos dentro de la matriz
.
Dividir matriz por vector en NumPy con la función numpy.reshape()
La idea detrás de este enfoque es que primero tenemos que convertir el vector en un array 2D. La función numpy.reshape()
se puede utilizar para convertir el vector en un array 2D donde cada fila contiene solo un elemento. Entonces podemos dividir fácilmente cada fila del array por cada fila del vector.
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)
Producción :
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
En el código anterior, convertimos el vector
a un array 2D con la función np.reshape()
. Después de eso, dividimos la matriz
por el vector
y almacenamos el resultado dentro de la matriz
.
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