Curso Python para Ciencia de datos
Por Jose R. Zapata - https://joserzapata.github.io/
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.
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])