Cordiales saludos

Comencemos entrando a nuestro entorno virtual y luego ejecutando jupyter lab
rafael@HP:~$
rafael@HP:~$ cd .gitlab/datascience/
rafael@HP:~/.gitlab/datascience$
rafael@HP:~/.gitlab/datascience$ source env/bin/activate
(env) rafael@HP:~/.gitlab/datascience$
(env) rafael@HP:~/.gitlab/datascience$ jupyter lab
Para comenzar importamos la librería de numpy

import numpy as np
Generar una matriz con un rango de fecha
Podemos crear un rango de fecha en formato de dos dimensiones.
np.arange('2024-01', '2024-02', dtype='datetime64[D]')
array(['2024-01-01', '2024-01-02', '2024-01-03', '2024-01-04',
'2024-01-05', '2024-01-06', '2024-01-07', '2024-01-08',
'2024-01-09', '2024-01-10', '2024-01-11', '2024-01-12',
'2024-01-13', '2024-01-14', '2024-01-15', '2024-01-16',
'2024-01-17', '2024-01-18', '2024-01-19', '2024-01-20',
'2024-01-21', '2024-01-22', '2024-01-23', '2024-01-24',
'2024-01-25', '2024-01-26', '2024-01-27', '2024-01-28',
'2024-01-29', '2024-01-30', '2024-01-31'], dtype='datetime64[D]')
Matriz identidad
Otra forma de generar la matriz identidad es con np.eye()
np.eye(4, dtype=int)
array([[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 1]])
np.eye(4)
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
Repaso matriz Identidad
Esta forma de generar la matriz identidad ya la habíamos visto en este curso
np.identity(4)
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
np.identity(4, dtype=int)
array([[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 1]])
randint
Podemos generar una matriz con números aleatorios, en este caso generamos una matriz de 5 por 5 con números aleatorios entre el 1 y 10.
np.random.randint(1,10,(5,5))
array([[9, 1, 5, 3, 6],
[2, 1, 9, 9, 1],
[2, 6, 7, 3, 9],
[2, 1, 1, 6, 9],
[2, 2, 2, 2, 1]])
Suma de matrices
Con np.random.randint()
generamos dos matrices para realizar la suma de matrices.
matriz = np.random.randint(1,50,(3,3))
matriz
array([[17, 8, 37],
[12, 2, 27],
[41, 21, 25]])
matriz2 = np.random.randint(1,50,(3,3))
matriz2
array([[ 9, 16, 40],
[43, 27, 33],
[ 2, 39, 33]])
Sumando matriz + matriz2
Con el concepto de suma de matrices se realiza la operación de sumar cada uno de sus elementos.
matriz + matriz2
array([[26, 24, 77],
[55, 29, 60],
[43, 60, 58]])
max(), min(),sum()
Podemos encontrar el máximo valor de la matriz; el menor valor de la matriz y la suma de todos sus valores.
matriz3 = np.random.randint(1,50,(3,3))
matriz3
array([[ 6, 18, 25],
[ 7, 35, 48],
[35, 31, 9]])
matriz3.max()
48
matriz3.min()
6
matriz3.sum()
214
Ejercicios Varios
lista=([ [1,2,3],[4,5,6] ])
m=np.array(lista)
m
array([[1, 2, 3],
[4, 5, 6]])
m2=np.array([ [10,20,30],[40,50,60], [70,80,90] ])
m2
array([[10, 20, 30],
[40, 50, 60],
[70, 80, 90]])
Matriz diagonal
m3=np.diag(np.diag(m2))
m3
array([[10, 0, 0],
[ 0, 50, 0],
[ 0, 0, 90]])
m4=np.diag([1,2,3,4,5,6,7,8])
m4
array([[1, 0, 0, 0, 0, 0, 0, 0],
[0, 2, 0, 0, 0, 0, 0, 0],
[0, 0, 3, 0, 0, 0, 0, 0],
[0, 0, 0, 4, 0, 0, 0, 0],
[0, 0, 0, 0, 5, 0, 0, 0],
[0, 0, 0, 0, 0, 6, 0, 0],
[0, 0, 0, 0, 0, 0, 7, 0],
[0, 0, 0, 0, 0, 0, 0, 8]])
m4.shape
(8, 8)
Creando matrices con full()
m5=np.full((3,3),100)
m5
array([[100, 100, 100],
[100, 100, 100],
[100, 100, 100]])
Creando matrices con ones()
m6=np.ones((3,3))
m6
array([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]])
m7=np.ones((3,3), dtype=int)
m7
array([[1, 1, 1],
[1, 1, 1],
[1, 1, 1]])
Creando matrices con zeros()
m8=np.zeros((3,3))
m8
array([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
m9=np.zeros((3,3), dtype=int)
m9
array([[0, 0, 0],
[0, 0, 0],
[0, 0, 0]])
Creando matrices con arange()
m10=np.array([np.arange(4),np.arange(4)])
m10
array([[0, 1, 2, 3],
[0, 1, 2, 3]])
list1=np.arange(3)
list2=np.arange(3)
m11=np.array([list1,list2])
m11
array([[0, 1, 2],
[0, 1, 2]])
Subarrreglos
m12 = np.array([
[9,8,7,6],
[5,4,3,2]
])
m12
array([[9, 8, 7, 6],
[5, 4, 3, 2]])
m12[1]
array([5, 4, 3, 2])
m12[:,0]
array([9, 5])
Posiciones (selección de valores)
m12[0,0]
9
m12[0,1]
8
En esta publicacíón se repasaron temas anteriores que puedes revisar en:
✅ Arreglos Bidimensionales
✅ Arreglos Bidimensionales - continuación
Ampliando conocimientos
Todo el código generado en Markdown para esta publicación lo realicé de la siguiente manera.

Actualizando el repositorio
Este apartado te permite practicar git. Poco a poco de darás cuenta de la utilidad y lo importante para trabajar en este mundo de la programación e informática.
(env) rafael@HP:~/.gitlab/datascience$
(env) rafael@HP:~/.gitlab/datascience$ git status
En la rama main
Tu rama está actualizada con 'origin/main'.
Archivos sin seguimiento:
(usa "git add <archivo>..." para incluirlo a lo que se será confirmado)
29_ejercicios.ipynb
no hay nada agregado al commit pero hay archivos sin seguimiento presentes (usa "git add" para hacerles seguimiento)
(env) rafael@HP:~/.gitlab/datascience$ git add 29_ejercicios.ipynb
(env) rafael@HP:~/.gitlab/datascience$
(env) rafael@HP:~/.gitlab/datascience$ git commit -m "add 29_ejercicios"
[main 6ceba72] add 29_ejercicios
1 file changed, 870 insertions(+)
create mode 100644 29_ejercicios.ipynb
(env) rafael@HP:~/.gitlab/datascience$ git push
Username for xxxxxxxxxxxxxxxxxxxx
Password for xxxxxxxxxxxxxxxxxxxx
Enumerando objetos: 4, listo.
Contando objetos: 100% (4/4), listo.
Compresión delta usando hasta 4 hilos
Comprimiendo objetos: 100% (3/3), listo.
Escribiendo objetos: 100% (3/3), 3.20 KiB | 1.60 MiB/s, listo.
Total 3 (delta 1), reusados 0 (delta 0), pack-reusados 0
To https://gitlab.com/btcsiraquino/datascience.git
74f5cdb..6ceba72 main -> main
(env) rafael@HP:~/.gitlab/datascience$
Hasta aquí nuestra publicación, hasta la próxima semana.
Para ver todas la publicaciones del Curso de Data Science, puedes entrar a:
📍 https://siraquino.github.io/pythoncumanes/datascience.html
Todos a programar!
Rafael Aquino
Bogotá / Colombia
Thanks for your contribution to the STEMsocial community. Feel free to join us on discord to get to know the rest of us!
Please consider delegating to the @stemsocial account (85% of the curation rewards are returned).
You may also include @stemsocial as a beneficiary of the rewards of this post to get a stronger support.