Data Science N029. numpy Matrices

Cordiales saludos


0_29_portada.png

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


0_29_jupyter_02.png

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.


0_29_markdown.png

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



0
0
0.000
1 comments
avatar

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. 
 

0
0
0.000