Multiplicar un escalar por un vector

Autor: | Última modificación: 11 de enero de 2023 | Tiempo de Lectura: 2 minutos
Temas en este post: ,

¿Sabes cómo multiplicar un escalar por un vector? La multiplicación de escalares es un proceso simple que se lleva a cabo en el mundo de las matemáticas. No obstante, puede suceder que las cosas se compliquen un poco cuando hablamos de multiplicar un escalar por un vector, ya que, como sabemos, ambos tipos no son compatibles.

Un escalar es un número entero; un vector, en cambio, está compuesto por una serie de números. Veamos cómo podemos, entonces, unir estas dos clasificaciones en una multiplicación.

Multiplicar un escalar por un vector

Dado un número a y un vector u, la multiplicación viene definida por:

a. (v1v2, vn) = (a. v1, a. v2, … a. vn)

Lo que hacemos es multiplicar el escalar (que en este caso corresponde a a) por el primer componente, el escalar por el segundo componente, y así sucesivamente con todos.

Si no usáramos numpy, Python consideraría que queremos duplicar una lista n veces.

Entonces, vamos a definir un escalar, por ejemplo, que sea b y que sea igual a 3. Luego, definimos un array que sea 1, 2 y 3.

#Multiplicar un escalar por un vector
b = 3
v = np.array ([1, 2, 3])

Si hacemos la operación de multiplicar un escalar por un vector solo con el operador aritmético, no nos presenta ningún problema el resultado, ya que estamos trabajando con un array.

El resultado se muestra con normalidad:

b * v

array ([3, 6, 9])

Verificamos:

  • 3 * 1 = 3
  • 3 * 2 = 6
  • 3 * 3 = 9

En cambio, si intentáramos hacer esta misma operación con una lista, no obtendríamos el resultado esperado:

b = 3
v = [1, 2, 3]

b * v

[1, 2, 3, 1, 2, 3, 1, 2, 3]

Lo que hace es concatenar tres veces la misma lista, en vez de multiplicar un escalar por un vector. Esto sucede porque no es posible realizar operaciones matemáticas con escalares, en cambio, esto sí es posible con arrays.

Usando numpy:

b = 3
v = np.array ([1, 2, 3])

 v * b

¿Qué hace internamente numpy cuando hay que multiplicar un escalar por un array?

Ejercicio

Vamos a hacer un ejercicio que consiste en multiplicar un escalar por un vector sin usar numpy: a = 12, v = [3, 5, 6].

Lo que vamos a hacer es crear un vector para almacenar el resultado, iterar sobre los componentes del vector y almacenar la multiplicación.

Por último, imprimimos el resultado:

#Multiplicar un escalar por un vector
a = 12
v = [3, 5, 6]

mult = [ ]
for i in v:
mult.append (a * i)

mult

[36, 60, 72]

De una forma más compacta y aplicando buenas prácticas.

Lo haremos con el bucle, donde definimos la condición que queremos y ya lo tendremos.

Como inicialmente queda como una lista, simplemente lo convertimos en un array poniéndole el np.array y toda la línea de código entre los paréntesis del mismo:

np.array ([a * i for i in v])

array ([36, 60, 72])

¿Qué sigue?

Para que sigas aprendiendo sobre el mundo tecnológico, que ofrece excelentes oportunidades para desarrolladores y aspirantes a data scientist, tenemos para ti el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp. En esta formación intensiva adquirirás todos los conocimientos teóricos y prácticos para que avances en tu camino hacia el éxito. ¡No esperes más para obtener lo que quieres y solicita información ahora!

👉 Descubre más del Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp ¡Descarga el temario!

👉 Prueba el Bootcamp Gratis por una Semana ¡Empieza ahora mismo!

👉 Conoce nuestros otros Bootcamps en Programación y Tecnología

[email protected]

¿Trabajo? Aprende a programar y consíguelo.

¡No te pierdas la próxima edición del Aprende a Programar desde Cero Full Stack Jr. Bootcamp!

 

Prepárate en 4 meses, aprende las últimas tecnologías y consigue trabajo desde ya. 

 

Solo en España hay más de 120.400 puestos tech sin cubrir, y con un sueldo 11.000€ por encima de la media nacional. ¡Es tu momento!

 

🗓️ Próxima edición: 13 de febrero

 

Reserva tu plaza descubre las becas disponibles.