es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Python – Dividir cada fila por un vector

Tengo una matriz de 10×10 y quiero dividir cada fila de la matriz por los elementos de un vector.

Por ejemplo:
Supongamos que tengo una matriz de 3×3

1 1 1
2 2 2
3 3 3

y un vector [1, 2, 3]

Entonces esta es la operación que deseo realizar:

1/1 1/2 1/3
2/1 2/1 2/3
3/1 3/2 3/3

es decir, dividir los elementos de una fila por los elementos de un vector (una lista en Python)

Puedo hacer esto usando bucles for. Pero, ¿hay una forma mejor de hacer esta operación en Python?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una manera mejor de hacer esta operación utilizando la biblioteca numpy en Python. Podemos crear un ndarray de numpy a partir de la matriz y el vector y luego utilizar la transmisión para realizar la división elemento a elemento.

    Aquí tienes un ejemplo de cómo hacerlo con una matriz de 10×10 y un vector:

    import numpy as np
    
    # crear una matriz de 10x10
    matrix = np.random.rand(10, 10)
    
    # crear un vector de longitud 10
    vector = np.random.rand(10)
    
    # dividir cada fila de la matriz por el vector utilizando la transmisión
    result = matrix / vector[:, np.newaxis]
    
    print(result)
    

    En este ejemplo, hemos utilizado np.newaxis para agregar una nueva dimensión al vector para que podamos realizar la transmisión a lo largo de las filas de la matriz. La transmisión nos permite realizar operaciones elemento a elemento entre matrices con formas diferentes, sin necesidad de bucles explícitos.

Comments are closed.