Skip to content

fegonzalez7/pdc_unal_clase19

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

Programación de Computadores - UNAL

Modulos importantes

Numpy

(Intro muy incompleta)

Es una de las librerías más conocidas para realizar computación científica en Python. Provee una librería de alto rendimiento para la manipulación de arreglos en varias dimensiones, además de ofrecer herramientas sofisticadas para manipularlos.

Traducción: Hacer operaciones matemáticas con list() es bastante tedioso, un par de genios simplemente programaron el poder compatucional de Matlab para usar matrices en Python, y eso se llama numpy.

Enlaces útiles:

Instalación: Para instalar en todo el sistema:

pip install numpy

Para instalar en notebook:

!pip install numpy

Arreglos by numpy

  • Un arreglo en numpy es una retícula de valores del mismo tipo indexadas por enteros no negativos.
  • El número de dimensiones (rank) y la forma (shape) del arreglo es una tupla de enteros que da el tamaño del arreglo para cada dimensión.
  • Se pueden crear arreglos de numpy desde listas de Python y acceder a los elementos con el operador subscript [].

Usando numpy (the ugly way):

import numpy

Usando numpy (the right way):

import numpy as np

Ejemplos:

import numpy as np
a = np.array(list(range(1,5))) # Crea un arreglo lineal [1, 2, 3, 4]
print(type(a)) # Imprime "<class 'numpy.ndarray'>"
print(a)
print(a.shape) # Imprime "(4,)" es de tamano 4, de 1 dimension
print(a[0], a[1], a[2]) # 1, 2, 3
a[0] = -4 
print(a) # [-4, 2, 3, 4]
import numpy as np
b = np.array([[1,2,3,5,6],[4,5,6,7,8]]) # Crea un arreglo 2-dimensional - matriz
print(b.shape)
print(b)
b[0,0] = 1590 # Subindices con mas logica
print(b)
print(b[0,0], b[0,1], b[1,0])
import numpy as np
c = np.array([1,2,3]) 
d = np.array([4,5,6]) 
e = c + d
print(e) # Boommmmm
import numpy as np
f = np.array([[1,2,3],[4,5,6]]) 
print(f.shape)
print(f.transpose().shape)
print(f) # Boommmmm
import numpy as np
g = np.array([[1,2,3],[4,5,6],[7,8,9]])
h = np.array([[9,8,7],[6,5,4],[3,2,1]])
print(np.matmul(g,h))

Ejercicio: Hacer un code que genere una matriz de zeros de nxn.

Indexación

import numpy as np
# Crea un arreglo 2-dimensional con forma (3, 4)
a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
print(a.shape)
print(a)
b = a[:2, 1:3]
# El primer argumento indica las filas y el segundo las columnas
print(b)
print("------------------------")
# Si se modifica algo de b, se cambia algo de a
b[0, 0] = -11 # b[0, 0] es el mismo a[0, 1]
print(b)
print(a)
print(a[0,1]) # Imprime "-11"

Tipo de dato

Numpy como Python determinan el tipo de dato basado en el valor. Sin embargo, dicho tipo tambi�en puede especificarse.

import numpy as np
x = np.array([5, -4])
print(x.dtype)
x = np.array([1.0, 2.0])
print(x.dtype)
x = np.array([5, -4], dtype=np.int32)
print(x.dtype)

Operaciones

Operaciones elemento a elemento:"

import numpy as np
x = np.array([[1,2,5], [3,4,6]], dtype=np.float128)
y = np.array([[5,6,-1], [7,8,-6]], dtype=np.float128)
print("Suma:")
print(x + y)
print("-----")
print(np.add(x, y))
print("raiz cuadrada:")
print(np.sqrt(x))

Linspace

Esta es la forma mas cool de crear arreglos

import numpy as np
i = np.linspace(2, 3, num=10, endpoint=True, retstep=False)
print(i)

Recrusos:

Matplotlip

  • Matplotlib es una librería para crear visualizaciones estáticas o animadas en Python.
  • Es posible graficar en un área con uno o más ejes (en términos de coordenadas x-y, theta-r, coordenadas polares, x-y-z, etc).
  • La forma más simple de crear una figura con ejes es usar el módulo pyplot.

Traducción: Cogieron la segunda mejor cosa que hace Matlab (gráficas) y la pusieron en Python de forma L I B R E.

Instalación: Para instalar en todo el sistema:

pip install matplotlib

Para instalar en notebook:

!pip install matplotlib

Usando numpy (the ugly way):

import matplotlib

Usando numpy (the right way):

from matplotlib import pyplot as plt # Si solo se quieren hacer gráficas

Ejemplo: Gráfica sencilla.

from matplotlib import pyplot as plt 
plt.plot([1, 2, 3, 4], [1, 4, 2, 3])

image.png

import numpy as np
from matplotlib import pyplot as plt 
x = np.linspace(0, 2, 50)
#print(x)
# Aun con el OO-style, usamos ".pyplot.figure" para crear la figura.
fig, ax = plt.subplots() # Crea la figura y los ejes.
ax.plot(x, x, label="linear") # Dibuja algunos datos en los ejes.
ax.plot(x, x**2, label="quadratic") # Dibuja mas datos en los ejes.
ax.plot(x, x**3, label="cubic") # ... y algunos mss.
ax.set_xlabel("x label") # Agrega un x-label a los ejes.
ax.set_ylabel("y label") # Agrega un y-label a los ejes.
ax.set_title("Simple Plot") # Agrega titulo a los ejes.
ax.legend() # Agrega una leyenda.

image.png

from matplotlib import pyplot as plt 
names = ["group_a", "group_b", "group_c"]
values = [3.4, 50.3, 23]
plt.figure(figsize=(9, 3))
plt.subplot(131)
plt.bar(names, values)
plt.subplot(132)
plt.scatter(names, values)
plt.subplot(133)
plt.plot(names, values)
plt.suptitle("Categorical Plotting")
plt.show()

image.png

Recrusos:

Entornos virtuales

Para ver en clase

Enalce

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published