Practica Numpy - Solución

Curso Python para Ciencia de datos

Por Jose R. Zapata - https://joserzapata.github.io/

Invítame a un Café

NOTA: Realizar Primero los ejercicios y luego revisar las soluciones propuestas.

Para realizar los ejercicios prácticos de este capitulo, hacer click en el siguiente enlace que los llevara a Google Colab, donde podrán ejecutar el código y realizar los ejercicios propuestos.

Ejercicios Numpy - click para abrir en colab

Los arreglos de numpy son la base de la computación científica en Python

  • los dataframes de pandas para análisis de datos (Numpy era la unica base hasta pandas 1.5.3)
  • los datos de entrada o salida para hacer Machine Learning con scikit-learn son arreglos de numpy

Nota: Es importante familiarizarse con el manejo de arreglos de numpy para poder hacer ciencia de datos con Python e identificar cuando usar un arreglo de numpy o un dataframe de pandas. Principalmente Scikit-learn, Pytorch y TensorFlow trabajan con arreglos de numpy.

Importe NumPy como np

import numpy as np

Cree un arreglo de ceros de 10 elementos

# Copie su código aqui
np.zeros(10)
array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])

Cree un arreglo de unos de 10 elementos

# Copie su código aqui
np.ones(10)
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])

Cree un arreglo de cincos de 10 elementos

# Copie su código aqui
np.ones(10) * 5
array([5., 5., 5., 5., 5., 5., 5., 5., 5., 5.])

Cree un arreglo de números enteros Del 10 al 50 (incluido)

# Copie su código aqui
np.arange(10,51)
array([10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
       27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
       44, 45, 46, 47, 48, 49, 50])

Cree un arreglo de los números enteros pares Del 10 al 50 (incluidos)

# Copie su código aqui
np.arange(10,51,2)
array([10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42,
       44, 46, 48, 50])

Crear una matrix de 3x3 con valores del 0 al 8 (incluido)

# Copie su código aqui
np.arange(9).reshape(3,3)
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])

Crear la matriz identidad de 3x3

# Copie su código aqui
np.eye(3)
array([[1., 0., 0.],
       [0., 1., 0.],
       [0., 0., 1.]])

Use NumPy para generar un numero aleatorio entre 0 y 1

# Copie su código aqui
np.random.rand(1)
array([0.2369713])

Use NumPy para generar un arreglo de 25 números aleatorios que sean de la distribucion normal estandar

# Copie su código aqui
np.random.randn(25)
array([-1.82518925,  0.35985968,  0.7908014 ,  1.09115394, -1.18145353,
       -0.38358405, -0.1049287 ,  1.27313964,  0.05365275, -0.63835531,
        0.4984666 , -1.60464831, -0.84688945,  0.4695778 ,  1.73142269,
       -1.63808225, -0.67171648, -0.14015625,  0.50828476,  0.60145966,
       -0.34493194,  0.09632452, -0.85907492, -0.46924336,  1.22406872])

Cree un arreglo de 20 elementos linealmente espaciados entre 0 y 1:

# Copie su código aqui
np.linspace(0,1,20)
array([0.        , 0.05263158, 0.10526316, 0.15789474, 0.21052632,
       0.26315789, 0.31578947, 0.36842105, 0.42105263, 0.47368421,
       0.52631579, 0.57894737, 0.63157895, 0.68421053, 0.73684211,
       0.78947368, 0.84210526, 0.89473684, 0.94736842, 1.        ])

Indexacion y seleccion con Numpy

Ahora se le darán algunas matrices y se le pedirá que replique los resultados de la matriz resultante:

# Copie su código aqui
# Matriz de entrada
mat = np.arange(1,26).reshape(5,5)
mat
array([[ 1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10],
       [11, 12, 13, 14, 15],
       [16, 17, 18, 19, 20],
       [21, 22, 23, 24, 25]])
# Copie su código aqui
mat[2:,1:]
array([[12, 13, 14, 15],
       [17, 18, 19, 20],
       [22, 23, 24, 25]])
# Copie su código aqui
mat[3,4]
20
# Copie su código aqui

mat[:3,1:2]
array([[ 2],
       [ 7],
       [12]])
# Copie su código aqui
mat[4,:]
array([21, 22, 23, 24, 25])
# Copie su código aqui
mat[3:5,:]
array([[16, 17, 18, 19, 20],
       [21, 22, 23, 24, 25]])

Obtenga la suma de todos los valores de la matriz

# Copie su código aqui
mat.sum()
325

Obtenga la desviación estándar de los valores de la matriz

# Copie su código aqui
mat.std()
7.211102550927978

Obtener la suma de cada una de las columnas de la matriz

# Copie su código aqui
mat.sum(axis=0)
array([55, 60, 65, 70, 75])