Multiplicar un escalar por un vector

| Última modificación: 22 de julio de 2024 | Tiempo de Lectura: 2 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿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.

¿Qué encontrarás en este post?

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])

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!

Sandra Navarro

Business Intelligence & Big Data Advisor & Coordinadora del Bootcamp en Data Science, Big Data & Machine Learning.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado