Un array es una estructura de datos de un mismo tipo organizada en forma de tabla o cuadrícula de distintas dimensiones. Las dimensiones de un array también se conocen como ejes.
Para crear un array se utiliza la siguiente función de NumPy
np.array(lista) : Crea un array a partir de la lista o tupla lista y devuelve una referencia a él. El número de dimensiones del array dependerá de las listas o tuplas anidadas en lista:
Para una lista de valores se crea un array de una dimensión, también conocido como vector.
Para una lista de listas de valores se crea un array de dos dimensiones, también conocido como matriz.
Para una lista de listas de listas de valores se crea un array de tres dimensiones, también conocido como cubo.
Y así sucesivamente. No hay límite en el número de dimensiones del array más allá de la memoria disponible en el sistema.
Los elementos de la lista o tupla deben ser del mismo tipo.
Otras funciones útiles que permiten generar arrays son: (Los enlaces llevan a la documentación oficial)
np.empty(dimensiones) : Crea y devuelve una referencia a un array vacío con las dimensiones especificadas en la tupla dimensiones. En realidad, como se verá en la práctica ofrece un array con valores aleatorios para después ser sustituidos, no ofrece nada vacío como se entiende normalmente.
np.identity(n) : Crea y devuelve una referencia a la matriz identidad de dimensión n.
Existen varios atributos y funciones que describen las características de un array.
a.ndim : Devuelve el número de dimensiones del array a.
a.shape : Devuelve una tupla con las dimensiones del array a.
a.size : Devuelve el número de elementos del array a.
a.dtype: Devuelve el tipo de datos de los elementos del array a.
Para acceder a los elementos contenidos en un array se usan índices al igual que en Python para acceder a los elementos de una lista, pero indicando los índices de cada dimensión separados por comas.
Al igual que para listas, los índices de cada dimensión comienzan en 0.
También es posible obtener subarrays con el operador dos puntos : indicando el índice inicial y el siguiente al final para cada dimensión, de nuevo separados por comas.
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 condicion.
Existen dos formas de realizar operaciones matemáticas con arrays: a nivel de elemento y a nivel de array (vectores, matrices).
Las operaciones a nivel de elemento operan los elementos que ocupan la misma posición en dos arrays. Se necesitan, por tanto, dos arrays con las mismas dimensiones y el resultado es una array de la misma dimensión.
Los operadores matemáticos +, -, *, /, %, ** se utilizan para la realizar suma, resta, producto, cociente, resto y potencia a nivel de elemento.
Numpy incorpora funciones para realizar las principales operaciones algebraicas con vectores y matrices. La mayoría de los métodos algebraicos se agrupan en el submódulo linalg.
Para realizar el producto escalar de dos vectores se utiliza el operador @ o el siguiente método:
u.dot(v): Devuelve el producto escalar de los vectores u y v.
Para calcular el módulo de un vector se utiliza el siguiente método:
norm(v): Devuelve el módulo del vector v.
Para realizar el producto matricial se utiliza el mismo operador @ y método que para el producto escalar de vectores:
a.dot(b) : Devuelve el producto matricial de las matrices a y b siempre y cuando sus dimensiones sean compatibles.
Para trasponer una matriz se utiliza el método
a.T : Devuelve la matriz traspuesta de la matriz a.
La traza de una matriz cuadrada se calcula con el siguiente método:
a.trace() : Devuelve la traza (suma de la diagonal principal) de la matriz cuadrada a.
El determinante de una matriz cuadrada se calcula con la siguiente función:
det(a) : Devuelve el determinante de la matriz cuadrada a.
La inversa de una matriz se calcula con la siguiente función:
inv(a) : Devuelve la matriz inversa de la matriz cuadrada a.
Los autovalores de una matriz cuadrada se calculan con la siguiente función:
eigvals(a) : Devuelve los autovalores de la matriz cuadrada a.
Para resolver un sistema de ecuaciones lineales se utiliza la función siguiente:
solve(a, b) : Devuelve la solución del sistema de ecuaciones lineales con los coeficientes de la matriz a y los términos independientes de la matriz b.
Ejemplos de operaciones básicas con la librería Numpy: