En este post te enseñaremos cómo hacer la suma de un escalar a un array.
Un escalar es un solo número y va en contraste con la mayoría de objetos en álgebra lineal, que son generalmente una colección de números múltiples.
Un array es una serie o combinación de números con la que se pueden hacer operaciones como sumas o restas. Por eso, en este post veremos cómo se realiza la suma de un escalar a un array.
Suma de un escalar a un array
Dado un escalar a y un vector v, la suma viene definida por:
a + (v1, v2, …, vn) = (a + v1, a + v2, …, a + vn)
Esto no es más que sumar ese escalar a cada componente del vector. numpy nos simplifica mucho las cosas, nos permite sumar un escalar a todos los elementos de un array realizando simplemente:
#Suma de un escalar a un array
a = 20
v = np.array ([1, 5, 2])
Ahora vamos a sumarlo de esta forma:
#Suma de un escalar a un array
a + v
array ([21, 25, 22])
Verificamos que sea correcta la suma:
- 20 + 1 = 21
- 20 + 5 = 25
- 20 + 2 = 22
Suma de un escalar a dos arrays
Haremos un ejercicio parecido a el de otro anterior, en donde hicimos la suma de estos dos arrays [2, 3, 10] y [10, 20, 30]. Empleamos un bucle para poder ejecutar esta tarea.
Ahora observemos cómo lo haríamos con este ejercicio.
Definimos lo que queremos, que es una lista. Lo único que haremos será iterar sobre los elementos del bucle y sumarle el escalar, que en este caso es 20.
#Suma de un escalar a un array
res = [a + i for i in v]
print (res)
print (type (res))
[21, 25, 22]
<class ‘list’>
Como podemos ver, el resultado que nos aparece es una lista, lo cual dificulta un poco las cosas, ya que, como sabemos, con las listas, a diferencia de los arrays, no se puede hacer operaciones matemáticas de ningún tipo.
Por eso, lo que haremos será convertir esa lista en un array usando el np.array e incluyendo todo el bucle dentro de un paréntesis:
#Suma de un escalar a un array
res = np.array ([a + i for i in v])
print (res)
print (type (res))
[21 25 22]
<class ‘numpy.ndarray’>
Si tuviéramos dos arrays y un escalar, veamos cómo deberíamos proceder:
#Suma de un escalar a un array
a = 20
v = np.array ([[1, 5, 2], [4, 3, 1]])
print (v.shape)
(2, 3)
Tenemos que hacer varios bucles:
#Suma de un escalar a un array
a = 20
v = np.array ([[1, 5, 2], [4, 3, 1]])
#print (v.shape)
for i in v:
print (i)
(2, 3)
[1 5 2]
[4, 3, 1]
El primer bucle nos va a iterar sobre el primer componente y sobre el segundo componente. Lo que tendríamos que hacer ahora sería iterar sobre los valores del primer componente:
#Suma de un escalar a un array
a = 20
v = np.array ([[1, 5, 2], [4, 3, 1]])
#print (v.shape)
for i in v:
print (i)
for j in i:
print (j)
[1 5 2]
1
5
2
[4 3 1]
4
3
1
Por tanto, hasta ahora lo que hemos hecho es:
- Primer bucle: iteramos sobre el primer componente [1 5 2].
- Segundo bucle: iteramos sobre los valores del primer componente, es decir, primero 1, luego 5 y después 2.
Posterior a esto, realizamos la suma, que sería el escalar más j, porque es el valor que tenemos.
Por último, definiremos el vector donde vamos a guardar los valores resultantes, pero el resultado debe ser también una matriz que tenga forma de (2, 3).
En el segundo bucle definimos otro array que va a guardar la suma:
#Suma de un escalar a un array
a = 20
v = np.array ([[1, 5, 2], [4, 3, 1]])
#print (v.shape)
res = [ ]
for i n v:
sub_ = [ ]
for j in i:
#Suma
sub_.append (a + j)
res.append (sub_)
print (res)
[[21, 25, 22], [24, 23, 21]]
¿Cómo puedes sigue?
El Big Data es una de las áreas con mayor demanda laboral y mayor empleabilidad. Si quieres tener la oportunidad de acceder a este tipo de opciones de empleo, no te pierdas el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp. Con la guía de esta formación intensiva adquirirás todos los conocimientos, tanto teóricos como prácticos, que te permitirán conseguir el trabajo de tus sueños. ¡No esperes más para cambiar tu futuro y pide información ahora!