Introducción a NumPy - Bloque 2
En esta sección aprenderás lo básico sobre NumPy. Hemos preparado un video explicativo para ti, donde cubriremos los siguientes temas:
- Indexación y slicing
- Operaciones básicas, broadcasting
- Valores únicos y cuentas
Indexación y slicing
Podemos indexar y usar slicing matrices NumPy de la misma manera que hacemos con listas de Python.
data = np.array([1, 2, 3])
print(data[1])
# 2
print(data[0:2])
# array([1, 2])
print(data[1:])
# array([2, 3])
print(data[-2:])
# array([2, 3])
La principal diferencia es que en lugar de usar múltiples corchetes, usamos comas para acceder a elementos.
Operaciones básicas, broadcasting
Si tuviésemos un par de arrays del misma forma, podríamos operar entre ellos. Consideremos el par de arreglos a continuación:
Podríamos sumarlos:
data = np.array([1, 2])
ones = np.ones(2, dtype=int)
print(data + ones)
# array([2, 3])
Esto en general se preserva para las otras operaciones básicas:
data - ones
# array([0, 1])
data * data
# array([1, 4])
data / data
# array([1., 1.])
¿Qué sucede si queremos una multiplicación escalar?
Broadcasting
data = np.array([1.0, 2.0])
data * 1.6
# array([1.6, 3.2])
Valores únicos y cuentas
Existen algunas funciones propias de los arreglos en NumPy:
- .max() te dirá el máximo de los elementos del arreglo.
- .min() te dirá el mínimo de los elementos del arreglo.
- .sum() te dirá la suma de los elementos del arreglo.
- .prod() te dirá el producto de los elementos del arreglo.
Incluso existen funciones que te devuelven estadísticos de tus datos:
- .mean() te dirá el promedio de los elementos del arreglo.
- .std() te dirá la desviación estándar de los elementos del arreglo.
También puedes utilizar operaciones matemáticas básicas:
- np.sin(x) te devolverá el seno del vector
x
. - np.cos(x) te devolverá el coseno del vector
x
- Etcétera.
En cuanto a querer devolver valores únicos, podemos usar .uniques()
a = np.array([11, 11, 12, 13, 14, 15, 16, 17, 12, 13, 11, 14, 18])
unique_values = np.unique(a)
print(unique_values)
# [11 12 13 14 15 16 17 18]