Dominar NumPy: inicialización de formas, operaciones y funciones de Ndarray
Publicado: 2021-01-05Numpy es un paquete de Python que permite realizar operaciones matemáticas y numéricas con alta eficiencia y funcionalidad abstracta en datos de alta dimensión. Al crear una solución de Machine Learning para un caso de uso comercial particular, se vuelve muy importante transformar los datos de tal manera que el preprocesamiento sea fácil y los resultados sean interpretables. Numpy es la biblioteca central que permite realizar todas las funciones relacionadas de la mejor manera posible.
Tabla de contenido
¿Por qué NumPy?
Otras bibliotecas de ciencia de datos, como Pandas, Matplotlib y Scikit-learn, se basan en Numpy debido a su naturaleza de alto rendimiento. Esta biblioteca ofrece ndarray que se usa en lugar de las listas de python incorporadas. La lista de Python es excelente para almacenar valores, pero tiene el costo de un mayor tiempo de ejecución, ya que almacena punteros de las ubicaciones de memoria, lo que agrega una sobrecarga en términos de memoria y ejecución.
Numpy encuentra su uso directo en el campo de procesamiento de imágenes, donde las imágenes se procesan como matrices multidimensionales altas para realizar diversas transformaciones, como desenfoque, cambio de color y detección de objetos.
Veamos algunas funciones importantes de Numpy que todo aspirante a Data Science debería conocer, pero antes de eso:
- Todo el código de funciones a continuación asume que la biblioteca ha sido importada con alias np, es decir, import numpy as np.
- El término "matriz" se utilizará para definir ndarray después de este punto.
Diferentes formas de inicializar
1. Espaciado lineal
Esta función está destinada a proporcionar una matriz espaciada lineal dentro del rango de valores. La función np.linspace(start, stop, num) donde start y stop definen el rango de valores y num define el número de muestras, devuelve valores espaciados uniformemente mientras que np.arange(start, stop, step) devuelve valores que difieren en valores de paso.
2. Valores Particulares
En muchos casos, es posible que desee inicializar una matriz grande con valores como unos, ceros, identidad o valores constantes. El tamaño de la matriz se pasa como una tupla. Numpy facilita esto a través de diferentes funciones:
- np.zeros (tamaño): los elementos son cero
- np.ones (tamaño): los elementos son unos
- np.full (tamaño, valor constante): los elementos se pasan de valor constante.
- np.eye(size): Los elementos diagonales son unos y el resto son cero. Esta es la matriz de identidad.
- np.empty(tamaño): matriz vacía
- np.random.random(size): La matriz de valores aleatorios se inicializa del tamaño especificado.
Leer: Preguntas de la entrevista Numpy
Operaciones Ndarray
El objetivo principal de esta biblioteca son los cálculos eficientes entre diferentes matrices. Numpy admite casi todos los tipos de operaciones y manipulaciones matemáticas que se aplican a los elementos. Algunos de ellos se enumeran a continuación (suponga que dos matrices A y B del mismo tamaño se inicializan con valores aleatorios):
1. Matemática
- np.add(A, B): Adición
- np.subtract(A, B): Resta
- np.divide(A, B): División
- np.multiply(A, B): Multiplicación
- np.exp(A): valores exponenciales
- np.sqrt(A): valores de raíz cuadrada
- np.sin(A), cos(A), tan(A): valores trigonométricos
- np.log(A): valores logarítmicos
- np.percentile(A, percentil necesario, eje): al pasar el valor del percentil, por ejemplo, 50, la función devolverá el percentil 50 de la matriz.
- A.dot(B): Devuelve el producto escalar de las matrices
- A == B: Comparación inteligente de elementos
- np.array_equal(A, B): Comparación inteligente de matrices
- A.sum(): Suma de todos los elementos
- A.min(), max(): Valores mínimos y máximos
- A.cumsum(): Suma acumulada de elementos del arreglo
- A.corrcoef(): Coeficiente de correlación
2. Manipulaciones
- np.transpose(A) o AT: Transposición de la matriz
- A.ravel(): aplana la matriz
- A.reshape(new_shape): remodela la matriz (aquí pasa el tamaño directamente sin ponerlo en la tupla). El nuevo tamaño debe ser el mismo que
- A.resize(size): cambia la forma de la matriz a cualquier forma y descarta otros elementos que no forman parte de esta nueva forma.
- np.concatenar((A,B), eje=1 o 0)
- np.vstack((A,B)): apila las matrices verticalmente (en filas)
- np.hstack((A,B)): Pila horizontal
Echa un vistazo: Numpy vs Panda: diferencia entre

Funciones misceláneas
- np.where(): esta es una función esencial que elimina la necesidad de declaraciones if-else. Toma 3 argumentos importantes: condición, el valor si la condición se cumple y el valor si no. Un ejemplo simple de esto puede ser cuando tiene que binarizar una columna en función de un umbral determinado.
- np.intersect1d(): esta función devuelve la intersección de dos matrices unidimensionales. Esto significa que esta función devuelve los valores comunes de estas matrices. Si las matrices pasadas no son 1-d, entonces se aplana.
- np.allclose(): Es una función interesante. Hay situaciones en las que puede permitirse cierto nivel de tolerancia al comparar matrices o desea descubrir matrices similares. Esta función toma las matrices y el valor de tolerancia que desea. Por ejemplo:
- matriz1 = np.matriz([1,2,3,4])
- matriz2 = np.matriz([2,3,4,5])
- np.allclose(arr1, arr2, 0.5): devolverá Falso
- np.allclose(arr1, arr2, 1): devolverá True
- argmin(), argmax() y argsort(): como sugiere el nombre, estas funciones devuelven los índices de los respectivos nombres. A.argmin() devuelve el índice de elemento mínimo, A.argmax() lo contrario y A.argsort() devuelve los índices de la matriz ordenada. Estas funciones pueden resultar útiles cuando el resultado depende del índice.
- np.clip(): Esto se usa para convertir los valores dentro de un rango específico. Por ejemplo, si una matriz tiene valores del 1 al 30 y desea los valores entre 14 y 27 sin perder otros valores, esta función aumentará los valores menores de 19 a 19 y reducirá los valores mayores de 27 a 27.
Conclusión
Hay muchas más funciones al operar en matrices numpy, pero estas son las funciones más utilizadas. Las operaciones aplicadas en las columnas o series de Pandas están en realidad en ndarray ya que la serie es ndarray unidimensional.
Numpy es una gran herramienta para generar datos falsos para probar algoritmos específicos o simular un escenario. Se usa ampliamente en aplicaciones de visión por computadora donde la imagen se transforma en matrices multidimensionales para realizar las operaciones requeridas o en aprendizaje profundo donde los pesos de la red neuronal están en manos de estos ndarrays.
Si tiene curiosidad por aprender sobre ciencia de datos, consulte el Diploma PG en ciencia de datos de IIIT-B y upGrad, creado para profesionales que trabajan y ofrece más de 10 estudios de casos y proyectos, talleres prácticos, tutoría con expertos de la industria, 1- on-1 con mentores de la industria, más de 400 horas de aprendizaje y asistencia laboral con las mejores empresas.