Basecamp: Ciencia de Datos
Basecamp: Ciencia de Datos
Basecamp: Ciencia de Datos
Ciencia de Datos
Obtención y Preparación de Datos
Objetivo de la jornada
La Librería Numpy
Sumaremos los elementos de una lista que contendrá los primeros mil
números enteros positivos (que construiremos con la función range()),
midiendo el tiempo que requiere la mencionada operación a través del
comando mágico %timeit.
test_list = list(range(1001))
%timeit sum(test_list)
import numpy as np
test_array = np.arange(1001))
%timeit sum(test_array)
n = 1000001
test_list = list(range(n)) # Python
test_array = np.arange(n) # NumPy
%timeit sum(test_list)
%timeit sum(test_array)
imagen:fuente propia
Creación de arrays
import numpy as np
np.array(lista)
import numpy as np
a1 = np.array([1, 2, 3])
print(a1)
# [1 2 3]
# [[1 2 3]
[4 5 6]]
# [[1 2 3]
[4 5 6]]
[[7 8 9]
[1 2 3]]
np.empty(dimensiones)
np.zeros(dimensiones)
print(np.zeros(3,2))
# [[0. 0. 0.]
[0. 0. 0.]]
np.ones(dimensiones)
np.full(dimensiones, valor)
np.identity(n)
# [[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
# [1, 3, 5, 7, 9]
np.linspace(inicio, fin, n)
np.random.random(dimensiones)
import numpy as np
array[1]
# 4
En donde se obtiene el valor 4 ya que se ha indicado el segundo elemento
del vector, recordando otra vez que en Python el primer elemento es 0 no
1.
array[2:6]
array[:5]
Por otro lado, para seleccionar desde el sexto elemento hasta el final se
puede utilizar la siguiente línea
array[:5]
# array([16, 19, 22, 25, 28])
array = np.arange(1,10).reshape(3,3)
array
# array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
array[1, :]
# array([4, 5, 6])
Otros Ejemplos:
# 4
# 4
print(a[:, 0:2])
# [[1 2]
[4 5]]
Una característica muy útil de los arrays es que es muy fácil obtener otro
array con los elementos que cumplen una condición.
a[condicion] : Devuelve una lista con los elementos del array a que
cumplen la condición.
# [2 4 6]
# [[2 3 4]
[6 7 8]]
print(a / b)
# [[1. 2. 3.]
print(a ** 2)
# [[1 4 9]
[16 25 36]]
# [[14 14]
[32 32]]
print(a.T)
# [[1 4]
[2 5]
[3 6]]
Redimensionar arreglos
np.reshape()
Esta función devuelve un nuevo array con los datos del array cedido como
primer argumento y el nuevo tamaño indicado:
import numpy as np
arrayA = np.arange(8)
np.reshape(arrayA,(2,4))
# array([[0, 1, 2, 3],
[4, 5, 6, 7]])
Convierte un vector de 8 elementos a el array de la forma de (4, 2). Puede
ser ejecutada con éxito porque la cantidad de elementos antes y después
de reshape es idéntica. Aumenta el ValueError si las cantidades son
diferentes.
La primera fila contiene los primeros 4 datos del arrayA y la segunda fila
contiene los últimos 4. Rellena los datos en el orden de la fila en esta
conversión de remodelación.
# array([[0, 2, 4, 6],
[1, 3, 5, 7]])
nsarray.reshape()
print(arrayA)
# [0 1 2 3 4 5 6 7]
print(arrayB)
# [[0 1 2 3]
[4 5 6 7]]
np.resize()
arrayA = np.arange(8)
arrayB = np.resize(arrayA, (2,4))
# array([[0, 1, 2, 3],
[4, 5, 6, 7],
[0, 1, 2, 3],
[4, 5, 6, 7]])
Si el nuevo array tiene más filas, repetirá los datos del array original pero
no aumentará el error.
# array([[0, 1],
[2, 3]])
np.resize(arrayA, (1,4))
# array([[0, 1, 2, 3]])
https://aprendeia.com/introduccion-a-numpy-python-1/
https://imalexissaez.github.io/2018/08/18/breve-introduccion-a-la-
libreria-numpy/
https://numpy.org/doc/stable/reference/generated/numpy.identity.ht
ml
https://claudiovz.github.io/scipy-lecture-notes-
ES/intro/numpy/operations.html