Sunteți pe pagina 1din 9

Laboratorio 1

Uso de Python con Numpy y elaboración de gráficas con Matplotlib


Introducción
En este laboratorio, pretendemos utilizar Python y algunas librerías de gráficos y cálculo
numérico, con el objetivo de representar múltiples señales.

La preparación del entorno contiene los siguientes pasos:

1. Instalación de Anaconda

2. Inicio de Jupyter Notebook o Jupyter Lab

3. Importación de las librerías necesarias y generación de gráficos

Parte 1 - Conceptos básicos de Python


Antes de iniciar con el laboratorio, pasaremos por algunos conceptos básicos.

Importación de librerías
Las librerías se pueden importar usando la palabra import. Se puede usar un nombre diferente
para la librería usando la palabra reservada as. La siguiente sentencia importa las librerías
que utilizaremos en casi todos los laboratorios:

import numpy as np
import matplotlib.pyplot as plt
...

np.array(...)
plt.plot(...)

1
Asignación de variables
Se pueden crear variables utilizando el símbolo de igual (=)

a = 3
b = 5

# Las variables creadas se pueden utilizer posteriormente.

c = a + b

Las variables no tienen por qué ser solo números: pueden ser letras, cadenas, incluso objetos
como imágenes, archivos, arrays, etc.

l = [0, 1, 2, 3]
p = “hola”
s = [“a”, 1]

Impresión de valores por pantalla


Se puede imprimir el valor de una variable usando el comando print().

Los comentarios inician con el carácter #

a = “hola”
print(a)

# Se debe imprimir en pantalla la palabra “hola”

2
Asignación (P1). Cree dos variables numéricas y realice las operaciones aritméticas básicas
e imprima el resultado.

Parte 2 - Numpy
Python por sí solo no sirve como un reemplazo de Matlab. Para lograr ese objetivo, debemos
utilizar librerías que amplían sus capacidades y que son ampliamente utilizadas en el ambito
científico. Se trata de las librerías Numpy y Matplotlib.

Si usa Anaconda, ya debe tener incluída una distribución de la librería. Si no, puede ejecutar
en una terminal el siguiente comando:

pip install numpy

Para usar la librería, basta con importarla:

import numpy as np

No es requisito usar np, pero es una notación muy extendida.

Los vectores se pueden generar por medio de la función linspace (Espacio lineal, o esparcimiento
lineal). Su uso es el siguiente

x = np.linspace(inicio, fin, puntos)

Por ejemplo,

x = np.linspace(0, 1, 20)

Genera un vector con la siguiente forma:

print(x)
[ 0. 0.52631579 1.05263158 1.57894737 2.10526316 2.63157895
3.15789474 3.68421053 4.21052632 4.73684211 5.26315789 5.78947368
6.31578947 6.84210526 7.36842105 7.89473684 8.42105263 8.94736842
9.47368421 10. ]

3
Asignación (P2) Conteste la siguiente pregunta: ¿Cuál es el significado del valor dado como
tercer parámetro a linspace, si comparamos esto con el muestreo?

Vectores y matrices

Podemos crear un vecotr o matriz a partir de listas individuales:

a = np.array([0, 1, 2, 3])
array([0, 1, 2, 3])

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


b
array([[0, 1, 2, 3],
[2, 1, 1, 2]])

Si quiere saber las dimensiones de un matriz específica, se puede usar la función np.shape

np.shape(b)
(2, 4)

# 2 filas, 4 columnas

Existen otras funciones para generar matrices especiales (por ejemplo, todos los elementos 1
(np.ones), todos los elementos cero (np.zeros))

np.ones((7,7))
# ¡OBSERVE EL DOBLE PARÉNTESIS!
array([[1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1.]])

4
Python permite generar vectores a partir de operaciones sobre otros vectores, por ejemplo:

x = np.linspace(0, 2*np.pi, 100)


y = np.sin(x)
z = x**2

Asignación (P3). Investigue que funciones están disponibles para generar matrices y
vectores especiales, por ejemplo, valores aleatorios, matriz identidad, etcétera. Incluya
ejemplos del uso de cada uno. Investigue por lo menos 10.

Acceder a los elementos individuales de una matriz o vector


Para acceder a los elementos individuales de un vector o una matriz, usamos la notación de
subíndice u[n].

Vea los índices en la siguiente ejemplo, usamos la siguiente notación:

a = np.array([3, 1, 8])
print(a[0]) # Primer elemento
print(a[1:]) # Obteniendo un subconjunto de un array
print(a[-1]) # Obteniendo el último elemento de un array

3
[1 8]
8

Para acceder a elementos individuales de una matriz:

b = np.array(([0, 1, 2], [3, 4, 5]))


print(b[0][0]) # Primer elemento, primer elemento
0
print(b[-1][-1]) # Último elemento, último elemento

5
print(b[1][0]) # Primer elemento de la segunda columna
3

Tome en cuenta las siguientes anotaciones

- El primer elemento se accede con 0.

5
- El último elemento corresponde con la longitud del vector menos uno.

Aritmética de vectores y matrices


Se pueden realizar operaciones sobre vectores y matrices. Por ejemplo, para sumar un vector
a otro:

d = np.ones(4)
f = np.ones(4)
d + f
array([2., 2., 2., 2.])

Observe que se produce un error si se intentan sumar vectores de diferente tamaño:

d = np.ones(4)
f = np.ones(5)

d + f

---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-71-4050900c0f8c> in <module>
2 f = np.ones(5)
3
----> 4 d + f

ValueError: operands could not be broadcast together with shapes (4,) (5,)

Se pueden realizar operaciones similares sobre matrices:

a = np.array(([0, 1, 2], [3, 4, 5]))


b = np.array(([0, 1, 2], [3, 4, 5]))

a + b
array([[ 0, 2, 4],
[ 6, 8, 10]])

Asignación (P4). Investigue cómo se realizan otro tipo de operaciones se pueden realizar
con vectores (suma, resta, producto punto).

6
Parte 3 - Gráficas básicas
Para generar gráficas de calidad con Python es necesario utilizar la librería Matplotlib.

import matplotlib.pyplot as plt


plt.plot(...)

Es relativamente sencillo generar gráficas si conocemos la secuencia de comandos correcta:

x = np.linspace(0, 6*np.pi, 100)


y = np.sin(x)
plt.plot(x, y)

Genera la siguiente gráfica:

Asignación (P5). Investigue cómo se pueden indicar los puntos extremos de la gráfica, para
no incluir el margen el blanco que se ve en la gráfica anterior. Además, investigue cómo
generar gráficas de diferente tamaño, color, y cómo añadir títulos y rejillas a la gráfica.

7
Múltiples gráficas
Podemos hacer múltiples gráficas sobre el mismo canvas usando múltiples veces el comando
plot:

import matplotlib.pyplot as plt

x = np.linspace(0, 6*np.pi, 100)


y = np.sin(x)
z = np.cos(x)
plt.plot(x, y)
plt.plot(x, z)

Genera la siguiente gráfica:

Gráficas de elementos discretos.


Use el comando stem:

import matplotlib.pyplot as plt

x = np.linspace(0, 6*np.pi, 20)


y = np.sin(x)
z = np.cos(x)
plt.stem(x, y)

Genera la siguiente gráfica:

8
Asignaciones
1. Genere dos períodos de una senoidal analógica de amplitud 1 y frecuencia 4 Hz,
muestreándola a una frecuencia de 20 Hz.
a. ¿Cuántas muestras se deben generar para completar dos periodos?
b. Grafique la señal analógica y la señal muestreada.
2. Grafique la señal senoidal obtenida por la suma de 3 senoidales diferentes, todas de
amplitud 1 y frecuencias 3, 6, y 12 Hz. Grafique la señal continua, para dos periodos
de la senoide de menor frecuencia.
a. Grafique la señal obtenida al muestrear esta señal a 36 Hz.
3. Explique por qué las señales graficadas por medio del comando np.plot son una
aproximación de señales continuas.

Entregables

1. Entregue un documento (formato IEEE) en formato PDF con la siguiente sintaxis: lab 1 –
apellido, nombre - informe.pdf
2. Entregue un archivo .ipynb que contenga el código de sus asignaciones, con el nombre:
lab 1 – apellido, nombre - código.pdf. Si utiliza Google Colab, indique el enlace en un
correo con el asunto con el mismo formato.

S-ar putea să vă placă și