Crea una cuenta o inicia sesi贸n

隆Contin煤a aprendiendo sin ning煤n costo! 脷nete y comienza a potenciar tu carrera

Suma de vectores en Python

6/28
Recursos

Aportes 57

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Blanco, Amarillo y el tercero es un n煤mero sin sentido.

El modelo RGB es una forma de representar colores como luces, es por eso que el negro es (0 0 0) ausencia completa de luz y el blanco es (255 255 255) todas las luces al m谩ximo. Los n煤meros entre 0 y 255 representan la cantidad de luz emitida por el color y cualquier numero fuera del rango no tiene sentido en este sistema.

Como dato, existe otro modo de representar colores que es CYMK y que hace referencia a la cantidad de pigmentos de cada color Cyan, Yellow, Magenta and Key (black). Los colores RGB se utilizan para ser visualizados en una pantalla (luz) y los CMYK en imprenta (tintas)

La funci贸n zip(), toma iterables como argumento y retorna un iterador. El iterador genera una serie de tuplas que contiene elementos de cada iterable.

numeros = [1, 2, 3]
letras = [鈥榓鈥, 鈥榖鈥, 鈥榗鈥橾

num_let = zip(numeros, letras)

list(num_let)
[(1, 鈥榓鈥), (2, 鈥榖鈥), (3, 鈥榗鈥)]

Respuesta a los ejercicios:

>>> a = np.array([0, 0, 255])
>>> rojo = np.array([255, 0, 0])
>>> verde = np.array([0, 255, 0])
>>> rojo + verde + a
array([255, 255, 255])
>>> rojo + verde
array([255, 255,   0])
>>> negro = np.array([0, 0, 0])
>>>
>>> negro - a
array([   0,    0, -255])
>>>

El primer color que obtengo es blanco(array([255, 255, 255])), le sigue amarillo(array([255, 255, 0])) y por ultimo, el color que se obtiene sumando negro - azul(array([ 0, 0, -255])) es inexistente dentro de los colores rgb, no tiene sentido ya que en clases anteriores el profesor comento que los numeros rgb son numeros que van desde el 0 hasta el 255.

# a = Azul
$a = np.array([0,0,255])
$rojo = np.array([255,0,0])
$verde = np.array([0,255,0])
$rojo+verde+a
array([255, 255, 255])
#Blanco
$rojo+verde
array([255, 255,   0])
#Amarillo
$negro-a
array([   0,    0, -255])
#Insertandolo a la p谩gina, nos da negro, 
#sin embargo no tiene sentido para el modelo RGB
# debido a que el modelo RGB est谩 definido como (Z_+)^3
#que quiere decir que solo est谩 definido sobre las entradas 
#positivas 

Como dato si escriben color ffffff en Google les aparecer谩 algo como esto. Que tiene varias representaciones de vectores para los colores, entre ellas RGB y CMYK.

Al principio del video, el profe utiliza la funci贸n zip, si alguien no la conoc铆a al igual que yo, aca va una explicaci贸n r谩pida:
zip(parametro_1, parametro_2) lo que hace, en ese caso, es que de cada iterable que se le ingresa como par谩metro, elige el primero de cada uno, y en ese caso, los suma, si los vectores seria uno de magnitud 3 y otro 4, zip lo que har铆a seria adaptarse al de menor magnitud y sumar desde el primer elemento hasta el tercero, dejando el cuarto fuera.
Fuente: https://likegeeks.com/python-zip-function/

Este es el ejercicio propuesto en la clase:

**La resta es posible en python pero no hace sentido en la escala de color RGB

a = np.array([0,0,255])
color_misterioso=np.array([0,0,255])
verde = np.array([0,255,0])
print(color_misterioso)```
el Color misterioso es el azul

**Punto 1**

punto_1=rojo + verde +color_misterioso
print(punto_1)
el color es blanco

**Punto 2**

punto_2 =rojo + verde
print(punto_2)
el color es amarillo

**Punto 3**

punto_3 = negro - a
print(punto_3)
No tiene sentido rgb va de 0 a 255

Les comparto la forma en que implement茅 el ejercicio en python:

#驴Qu茅 color obtienes si sumas  饾憻饾憸饾憲饾憸鈫+饾懀饾憭饾憻饾憫饾憭鈫+饾憥鈨?
#驴Qu茅 color obtienes sumando  饾憻饾憸饾憲饾憸鈫+饾懀饾憭饾憻饾憫饾憭鈫 ?
#驴Qu茅 color obtienes sumando  饾憶饾憭饾憯饾憻饾憸鈫掆垝饾憥鈨  ?

#aprovechando la propiedad asociativa y que ya tenemos una funci贸n que suma dos vectores
#sumar茅 primero rojo y verde y ese resultado lo sumar茅 con a

suma_rojo_verde = suma_vectores(rojo,verde)
suma_rojo_verde_a = suma_vectores(suma_rojo_verde,a)
suma_negro_menos_a = suma_vectores(negro,-a)

print("vector obtenido de 饾憻饾憸饾憲饾憸鈫+饾懀饾憭饾憻饾憫饾憭鈫+饾憥鈨:",suma_rojo_verde_a,"Es color blanco",
      "\nvector obtenido de 饾憻饾憸饾憲饾憸鈫+饾懀饾憭饾憻饾憫饾憭:",suma_rojo_verde, "Es color Amarillo",
      "\nvector obtenido de negro鈫-饾憥鈨:",suma_negro_menos_a, "no equivale a ning煤n color rgb, el campo de resultado debe ser R+",) 
    #se comprueba con el enlace de RGBs

Output:

vector obtenido de 饾憻饾憸饾憲饾憸鈫+饾懀饾憭饾憻饾憫饾憭鈫+饾憥鈨: [255, 255, 255] Es color blanco 
vector obtenido de 饾憻饾憸饾憲饾憸鈫+饾懀饾憭饾憻饾憫饾憭: [255, 255, 0] Es color Amarillo 
vector obtenido de negro鈫-饾憥鈨: [0, 0, -255] no equivale a ning煤n color rgb, el campo de resultado debe ser R+
  • Numpy es una biblioteca de Python que nos soporte para poder operar entre vectores y matrices. De igual manera contiene funciones matem谩ticas de alto nivel y que tambi茅n podr谩n operar con los vectores y matrices.

Reto cumplido 馃挌

# Teniendo en cuenta que el vector a = [0,0,255]
a = np.array([0,0,255])
print(f'El vector a representa el color azul, seg煤n el c贸digo RGB: {a}')
# Definici贸n de los arrays
rojo = np.array([255,0,0])
verde = np.array([0,255,0])
negro = np.array([0,0,0])
# Pregunta a:
pregunta_a = rojo+verde+a
print(f'El color que se obtiene de la suma de {rojo}, {verde} y {a} es {pregunta_a} : blanco')
# Pregunta b:
pregunta_b = rojo+verde
print(f'El color que se obtiene de la suma de {rojo} y {verde} es {pregunta_b} : amarillo')
# Pregunta c:
pregunta_c = negro-a
print(f'El color que se obtiene de la resta de {negro} y {a} es {pregunta_c} : No se puede determinar porque el vector componente [3] es negativo')

Soluci贸n al reto:

Hola muchachos,
este es mi aporte a la soluci贸n del reto:

Saludos!

uso de zip

  1. Azul!
  2. Blanco!
  3. Amarillo!
  4. No tiene sentido ya que los valores van de 0 a 255

Hola, mi aporte a la clase

Soluci贸n al ejercicio 馃М

  1. El vector a=[0,0,255] corresponde al color azul 馃數
  2. La suma entre rojo, verde y a es igual al color blanco 鈿 = [255,255,255]
  3. La suma entre rojo y verde es igual al color amarillo 馃煛 = [255,255,0]
  4. La suma de negro - a es igual a [-255,-255,-255] lo cual se sale de la escala permitida de colores RGB

Muy buenos d铆as, mi aporte:
los colores previamente definidos en el notebook: rojo, negro, z(azul), v(verde). Los resultados: el primero resulta blanco, el segundo resulta amarillo. El 煤ltimo ejercicio, no tiene sentido valores negativos; es como que fuera una ausencia, en este caso (0,0,-255) = (0,0,0) :negro.
Se hizo el intento con valores negativos en otras posiciones (255,-255, 0)=rojo; (-255,255,0) =verde, es decir, una sin alterar, ausencia. Por lo tanto, la operaci贸n no es cerrada.
Dejo los resultantes del colab en RGB. Saludos

Este es mi notebook, en este caso el rojo y el negro ya estaban definidos. El vector a nos representa el color azul. En el caso de la primera suma nos da como resultado el blanco, en la segunda suma nos da el amarillo y por 煤ltimo nos da como resultado un vector que no representa ning煤n color RGB.

Hasta aqu铆 va muy f谩cil

Me gusta lo de 鈥渆sto es una marat贸n, no una carrera de velocidad鈥 ya me estaba frustrando por no llegar r谩pido a ser cient铆fico de datos, pero creo que ya estoy asimilando que me voy a demorar mas de lo que quisiera

rojo = np.array([255,0,0])
verde = np.array([0,255,0])
azul = np.array([0,0,255])
negro = np.array([0,0,0])
blanco = np.array([255,255,255])

C1 = rojo + verde + azul
print("el color que se obtiene a partir de la suma de rojo verde y azul es: 鈥, C1 , " que es blanco鈥)

C2 = rojo + verde
print("La suma de los vectores del color rojo y verde da 鈥, C2, " que es amarillo鈥)

C3 = negro - azul
print("Restar el azul al negro da ", C3, 鈥渘o entra en los rangos de RGB鈥)

Antes de conocer Numpy me puse el reto que con POO hacer las funciones basicas para vectores, lo monte a Github aqu铆 por si le quieren dar un vistaso.

Hola que tal鈥 Mas que pregunta es una sugerencia para la plataforma, algunas veces durante la ejecuci贸n del video surgen preguntas relacionadas con el momento de la clase, ser铆a interesante que en el icono del trebol donde aparecen las opciones de descargar y eso, se pudiera crear la pregunta ya sea por voz o voz y texto, y quede grabada la pregunta junto con el tiempo donde ocurri贸, de esta forma ya no tenemos que dar el contexto de la pregunta, por otro lado ustedes podr铆an tener una idea de en qu茅 mome to surgen m谩s pregu tas y nosotros tener acceso a las pregu tas que otros hicieron y escucharlas de viva voz, no se es s贸lo una sugerencia que si se llega a implementar en la plataforma yo le tomar铆a mucho provecho, saludos

rojo + verde + a = blanco
rojo + verde = amarillo
negro - a = negro (Este resultado no tiene mucho sentido, dado que el vector del modelo rgb solo acepta n煤meros entre el rango de 0 a 255)

El vector a corresponde al color azul.

  1. Corresponde a blanco.
  2. Corresponde a amarillo.
  3. No tiene sentido porque el RGB s贸lo son n煤meros naturales y restar (0,0,0) que es negro al vector a que es (0,0,255) dar铆a (0,0,-255) pero no es una entrada v谩lida

el valor de a es el correspondiente en RGB a azul.

rojo + verde + a = [255, 255, 255] que es blanco.

rojo + verde = [255, 255, 0] que es amarillo.

negro - a = [0, 0, -255] que no es un color en RGB

a = es el color azul

La suma de rojo, verde y azul nos da = [255 255 255] Que es el color blanco

La suma de rojo y verde nos da = [255 255 0] Que es el color amarillo

El resto de negro y azul nos da = [ 0 0 -255] Que no es un color pero da negro

a = np.array([0,0,255])
rpt_1 = rojo + verde + a
rpt_2 = rojo + verde
rpt_3 = negro - a

print(f'rpt_1: {rpt_1}')
print(f'rpt_2: {rpt_2}')
print(f'rpt_3: {rpt_3}')

Me est谩 gustando demasiado el curso y como el profesor explica detalladamente los procesos, incluso la librer铆a numpy: les comparto mi c贸digo del reto y de sumas entre vectores usando numpy:

import numpy as np

rojo = [255,0,0]
verde = [0,255,0]
azul = [0,0,255]
negro = [0,0,0]

# Numpy tiene una estructura de datos llamado numpy arrays y se pueden crear con la propiedad array
# Los numpy array tienen las propiedades de un vector y su suma puede ser como los vectores algebraicos
rojo = np.array(rojo)
verde = np.array(verde)
azul = np.array(azul)

print('La suma de los numpy array rojo mas verde es: ', rojo+verde)

# Ejercicio de clase #6
# vector a = [0,0,255] es el color azul

# Color al sumar rojo verde y azul
print('La suma de los vectores, rojo, verde y azul es: ', rojo+verde+azul)
# Color sumando rojo y verde
print('La suma de los vectores, rojo y verde es: ', rojo+verde)
# Color sumando negro - azul es:
print('La suma negro menos azul es: ', negro-(+azul))```

<3

`#驴Qu茅 color obtienes si sumas 饾憻饾憸饾憲饾憸鈫+饾懀饾憭饾憻饾憫饾憭鈫+饾憥鈨 ?
a = np.array([0,0,255])
verde = np.array([0,255,0])

su1 = rojo + verde + a
print('El color que obtenemos es ', su1, 鈥(Blanco)鈥)`

 verde = np.array([0,255,0])
 a = np.array([0,0,255])
 print('rojo+verde+a:', rojo+verde+a)
 print('rojo+verde: ', rojo+verde)
 print('negro - a: ', negro - a)

La ultima operaci贸n no tiene sentido, ya que
negro + (-a) = -b no esta definido en el espacio vectorial de estos vectores

Aqu铆 mi soluci贸n:

<
verde = np.array([0,255,0])
negro = np.array([0,0,0])
rojo = np.array ([255,0,0])
a = np.array([0,0,255])  #Este vector es el color Azul

print(f'Suma rojo + verde + a resulta:   {verde + rojo + a}')

print(f'Suma rojo + verde resulta:   {verde + rojo}')

print(f'Negro - a resulta:   {negro - a},   este resultado no tiene sentido en el RGB')
> 

Respuestas a problema:

  • 驴Qu茅 color se obtiene al sumar rojo + verde + a? Blanco
  • 驴Qu茅 color obtienes sumando rojo + verde? Amarillo
  • 驴Qu茅 color obtienes sumando negro - a? Se obtiene un vector [0,0,-255], el cual no tiene sentido en el modelo RGB, ya que este solo abarca n煤meros positivos.
    Existe una raz贸n m谩s all谩 de la matem谩tica para que el modelo RGB se representa as铆, y tiene que ver con la electronica detras de las luces LED. Las luces leds se iluminan con diferente intensidad dependiendo del voltaje que reciben, cuando este voltaje es 0, est谩n apagadas, y cuando el voltaje es de 5 est谩n iluminando al m谩ximo (algunos leds requieren menos voltaje). Lo importante aqu铆 es que los LEDS solo funcionan con corriente continua, la cual es siempre 鈥減ositiva鈥, es por eso que no tiene sentido hablar de un modelo RGB negativo.
import numpy as np


red = np.array([255, 0, 0])
black = np.array([0, 0, 0])
green = np.array([0, 255, 0])
a = np.array([0, 0, 255])

print('驴Qu茅 color obtienes si sumas rojo + verde + a?:', red + green + a)
print('驴Qu茅 color obtienes sumando rojo + verde?:', red + green)
print('驴Qu茅 color obtienes sumando negro - a?驴Tiene sentido este resultado dentro del modelo aditivo RGB?:',
 black + a)

Para los que quieran instalar numpy

Windows:

0.- Entras a CMD.
1.- Entras a tu carpeta con el comando cd.
2.- Ingresa el comando 鈥減y -m pip install virtualenv鈥.
3.- Pones el comando py -m venv nombre_de_tu_espacio_virtual".
4.- Colocas "nombre_de_tu_espacio_virtual\Scripts\activate"
5.- Por 煤ltimo, tipeas 鈥減ip install nombre_de_librer铆a鈥 en este caso, el nombre de la librer铆a que queremos en 鈥渘umpy鈥.

a = np.array([0,0,255])
rojo = np.array([255,0,0])
verde = np.array([0,255,0])
negro = np.array([0,0,0])

  1. rojo+verde+a [255 255 255] = Blanco
  2. rojo + verde[255 255 0] = Amarillo
  3. nebro - a[ 0 0 -255] =No tiene sentido porque se sale del espacio vectorial

vector a [0,0,255] corresponde al color azul

rojo + verde + a = [255,0,0] + [0,255,0] + [0,0,255] = [255,255,255]
Se obtiene el color blanco

rojo + verde = [255,0,0] + [0,255,0] = [255,255,0]
Se obtiene el color amarillo

negro - a = [0,0,0] - [0,0,255] = [0,0,-255]
Este resultado no tiene sentido dentro del modelo RGB

para los que est谩n trabajando en alg煤n editor de c贸digo y no les funciona el numpy hay que instalarlo primero.
en la terminal ubuntu o Mac se ejecuta el comando pip install numpy y luego se importa. espero les funciones
saludos

El color de [0,0,255] es azul.

rojo_vector = [255,0,0]
verde_vector = [0,255,0]
a_vector = [0,0,255]
negro_vector = [0,0,0]

rojo = np.array(rojo_vector)
verde = np.array(verde_vector)
a = np.array(a_vector)
negro = np.array(negro_vector)

print(f'La suma del vector rojo y verde y a es {rojo+verde+a}')
print(f'La suma del vector rojo y el vector verdes es {rojo+verde}')
print(f'La resta de negro con a es {negro-a}')

rojo + verde + azul = blanco
rojo + verde = amarillo
El tercero no tiene sentido, RGB s贸lo usa los valores desde 0 hasta 255.

import numpy as np

a = np.array([0,0,255])
verde = np.array([0,255,0])
rojo = np.array([255,0,0])
negro = np.array([0,0,0])

#驴Qu茅 color obtienes si sumas rojo+verde+a?
color1 = rojo + verde + a
print('Color 1 es:',color1, 'blanco')

# 驴Qu茅 color obtienes sumando rojo+verde?
color2 = rojo + verde
print('Color 2 es:',color2, 'amarillo' )

# 驴Qu茅 color obtienes sumando negro鈭抋? 驴Tiene sentido este resultado dentro del modelo aditivo RGB?
color3 = negro - a
print('Color 3 es:',color3, 'No tiene sentido RGB es de 0 a 255')

Color 1 es: [255 255 255] blanco
Color 2 es: [255 255 0] amarillo
Color 3 es: [ 0 0 -255] No tiene sentido RGB es de 0 a 255

<rojo = np.array([255,0,0])
verde = np.array([0,255,0])
a = np.array([0,0,255])
negro = np.array([0,0,0])

print(rojo + verde + azul) #blanco
print(rojo + verde) #amarillo
print(negro - azul) #negro>

El 煤ltimo reto debe ser color negro porque los valores m铆nimos aceptados por el modelo son [0,0,0] como negro, adem谩s que el modelo solo acepta n煤meros enteros entre 0-255.

#驴Qu茅 color obtienes si sumas  饾憻饾憸饾憲饾憸鈫+饾懀饾憭饾憻饾憫饾憭鈫+饾憥鈨 ?
a = np.array([0,0,255])
verde = np.array([0,255,0])

su1 = rojo + verde + a
print('El color que obtenemos es ', su1, '(Blanco)')

#驴Qu茅 color obtienes sumando  饾憻饾憸饾憲饾憸鈫+饾懀饾憭饾憻饾憫饾憭鈫 ?
su2 = rojo + verde
print('El color que obtenemos es ', su2, '(Amarillo)')

#驴Qu茅 color obtienes sumando  饾憶饾憭饾憯饾憻饾憸鈫掆垝饾憥鈨 ? 驴Tiene sentido este resultado dentro del modelo aditivo RGB?
su3 = negro - a
print(su3)
# Este color no tiene sentido ya que el negro es ausencia de color, asi que no le podemos quitar color a algo que no lo tiene
rojo = np.array([255,0,0])
verde = np.array([0,255,0])
azul = np.array([0,0,255])
negro = np.array([0,0,0])

RoVeAz = rojo + verde + azul ## blanco
RoVe = rojo + verde ## amarillo
NeAz = negro - azul ## NO TIENE SENTIDO DA UN VALOR NEGATIVO EN LA POSICI脫N 2


print(RoVeAz)
print(RoVe)
print(NeAz)

El primero es blanco, el segundo es amarillo y el tercero sale negativo que seria no definido

El primer color es Blanco, el segundo es amarillo y el tercero es [0, 0, -255]

a = [0, 0, 255] # 3-vector a (Azul)
rojo = [255, 0, 0] # 3-vector rojo
negro = [0,0,0] # 3-vector negro
verde = [0, 255, 0] # 3-vector verde

a = np.array(a)
rojo = np.array(rojo)
negro = np.array(negro)
verde = np.array(verde)

print(rojo+verde+a)
print(rojo+verde)
print(negro-a)

#Este fue el resultado
[255 255 255]
[255 255   0]
[   0    0 -255]

El color rgb (0, 0, 255) es azul

驴 rojo + rojo no es rojo ?

[255, 0, 0] + [255, 0, 0] != [255, 0, 0]

Al no ser cerrada esta operaci贸n en su espacio vectorial, puede parecer contra-intuitivo, pero en este caso, lo mejor ser铆a limitar la suma al rango de 0 a 255 (enteros positivos incluido el cero)

ans = rojo + rojo
ans[ans<0] = 0            # limite inferior es cero
ans[ans>255] = 255        # limite superior es 255
ans
# array([255,   0,   0])      # rojo

O para el caso de negro - a:

ans = negro - a
ans[ans<0] = 0            # limite inferior es cero
ans[ans>255] = 255        # limite superior es 255
ans
# array([0, 0, 0])           # negro (ya no se le puede quitar color o luz al negro, por tanto sigue siendo negro)

Blanco, amarillo y negro