Ajude a manter o site livre, gratuito e sem propagandas. Colabore!
En esta sección, vamos a explorar la NumPy (Numerical Python), biblioteca para el tratamiento numérico de datos. Es ampliamente utilizada en los más diversos campos de la ciencia y la ingeniería. Aquí, nos restringiremos a introducir algunas de sus herramientas para la computación matricial.
Usualmente, la biblioteca se importa como sigue
Un numpy.array es una tabla de valores (vector, matriz o multidimensional) y contiene información sobre los datos brutos, indexación y cómo interpretarlos. Los elementos son todos del mismo tipo (diferente de una lista Python), referenciados por la propiedad dtype. La indexación de los elementos puede hacerse por un tuple de enteros no negativos, por booleanos, por otro numpy.array o por números enteros. El ndim de un numpy.array es su número de dimensiones (llamadas axes111111axes, del inglés, plural de axis, eje.). El numpy.ndarray.shape es un tuple de enteros que proporciona su tamaño (número de elementos) en cada dimensión. Su inicialización puede hacerse usando listas simples o anidadas. Por ejemplo,
tenemos un numpy.array de números enteros con cuatro elementos dispuestos en un único axis (eje). Podemos interpretarlo como una representación de un vector fila o columna, es decir
| (28) |
vector columna o vector fila.
Outro exemplo,
tenemos un numpy.array de números decimales (float) dispuestos en un arreglo con dos axes (ejes). El primer axis tiene tamaño y el segundo tiene tamaño . Es decir, podemos interpretarlo como una matriz de dos filas y tres columnas. Podemos hacer su representación algebraica como
| (29) |
Use numpy.array para asignar:
el vector
| (30) |
la matriz
| (31) |
El NumPy cuenta con útiles funciones de inicialización de numpy.array. Vea algunas de las más frecuentes:
numpy.zeros: inicializa un numpy.array con todos sus elementos iguales a cero.
numpy.ones: inicializa un numpy.array con todos sus elementos iguales a .
numpy.empty: inicializa un numpy.array sin asignar valores a sus elementos121212¡Atención! En el momento de la asignación, los valores de los elementos serán dinámicos según “basura” de la memoria..
numpy.arange: inicializa un numpy.array con una secuencia de elementos131313Similar a la función Python range..
numpy.linspace(a, b[, num=n]): inicializa un numpy.array como una secuencia de elementos que comienza en a, termina en b (incluidos) y contiene n elementos igualmente espaciados.
Construya un numpy.array para asignar una partición uniforme con puntos del intervalo . Es decir, un arreglo , de elementos , con paso .
Otras dos funciones importantes en el tratamiento de arrays son:
numpy.reshape: permite la alteración de la forma de un numpy.array.
El numpy.reshape también permite el uso de un carácter comodín -1 que será determinado dinámicamente para obtener una estructura adecuada. Por ejemplo,
numpy.transpose: computa la transpuesta de una matriz.
numpy.concatenate: concatena arrays.
Asigne el siguiente vector como un numpy.array
| (33) |
Luego, use el método numpy.reshape para, a partir de b, asignar la matriz
| (34) |
como un numpy.array.
Teniendo en cuenta que
| (35) |
es una matriz ortogonal141414 se dice matriz ortogonal, cuando ., calcule .
Considere el siguiente sistema de ecuaciones
| (36) | ||||
Use numpy.array para asignar:
la matriz de coeficientes de este sistema.
el vector de los términos constantes de este sistema.
la matriz ampliada de este sistema.
Los operadores aritméticos disponibles en Python actúan elemento-a-elemento en los numpy.arrays. Por ejemplo,
El NumPy también cuenta con varias funciones matemáticas elementales que operan elemento-a-elemento en arrays. Por ejemplo,
Calcule los valores de la función coseno para los elementos del vector
| (37) |
El numpy cuenta con un módulo de álgebra lineal, usualmente importado con
Un vector puede asignarse usando un numpy.array de un eje (dimensión). Por ejemplo,
| (38) | |||
| (39) |
podem ser alocados com
e
Asigne cada uno de los siguientes vectores como un numpy.array:
Dados dos vectores
| (40) | |||
| (41) |
define-se el producto escalar por
| (42) |
Con el NumPy, podemos calcularlo con la función numpy.dot. Por ejemplo,
La norma de un vector se define por
| (43) |
El NumPy cuenta con el método numpy.linalg.norm para calcularla. Por ejemplo,
Haga un código para calcular el producto escalar siendo
| (44) | |||
| (45) |
Una matriz puede asignarse como un numpy.array de dos ejes (dimensiones). Por ejemplo, las matrices
| (46) | |||
| (47) |
podem ser alocadas como segue
e
Como ya hemos visto, el NumPy cuenta con operadores elemento-a-elemento que pueden utilizarse en el álgebra involucrando arrays, luego también aplicables a matrices (consulte la Subseção 4.1.3). A continuación, vamos a introducir otras operaciones propias de este tipo de objeto.
Asigne cada una de las siguientes matrices como un numpy.array:
| (48) |
Sea
Determine el formato (shape) de los siguientes arrays:
A[:,0]
A[:,0:1]
A[1:3,0]
A[1:3,0:1]
A[1:3,0:2]
Además de las inicializaciones de arrays ya estudiadas en la Subseção 4.1.1, tenemos algunas más que son particularmente útiles en el caso de matrices.
numpy.eye(n): retorna la matriz identidad .
numpy.diag: extrae la diagonal o construye un numpy.array diagonal.
Asigne la matriz de los coeficientes y el vector de los términos constantes del siguiente sistema de ecuaciones
| (49) | ||||
donde , , , n=5.
La multiplicación de la matriz por la matriz es la matriz tal que
| (50) |
El numpy tiene la función numpy.matmul para calcular la multiplicación de matrices. Por ejemplo, la multiplicación de las matrices dadas en (46) y (47), calculamos
Es importante notar que numpy.matmul(A,B) es la multiplicación de matrices, mientras que * consiste en la multiplicación elemento a elemento. Alternativamente a numpy.matmul(A,B) puede-se usar A @ B.
Asigne las matrices
| (51) | |||
| (52) | |||
| (53) |
Entonces, si existen, calcule y proporcione las dimensiones de las siguientes matrices
El numpy tiene la función numpy.ndarray.trace para calcular la traza de una matriz (suma de los elementos de su diagonal). Por ejemplo,
Ya, el determinante es proporcionado en el módulo numpy.linalg. Por ejemplo,
Calcule la solución del siguiente sistema de ecuaciones
| (54) | ||||
por el método de Cramer151515Gabriel Cramer, 1704 - 1752, matemático suíço. Fonte: Wikipédia: Gabriel Cramer..
El rango (rank) de una matriz es el número de filas o columnas linealmente independientes. El numpy cuenta con la función numpy.linalg.matrix_rank para calcularla. Por ejemplo,
El método numpy.linalg.inv puede usarse para calcular la inversa de una matriz full rank. Por ejemplo,
Calcule, si es posible, la matriz inversa de cada una de las siguientes matrices
| (55) | |||
| (56) |
Verifique sus respuestas.
Un auto-par de una matriz , un escalar llamado autovalor y es un vector llamado autovector, es tal que
| (57) |
El numpy tiene la función numpy.linalg.eig para calcular los auto-pares de una matriz. Por ejemplo,
Observamos que la función retorna un tuple de numpy.arrays, siendo que el primero contiene los autovalores (repetidos conforme sus multiplicidades) y el segundo ítem es la matriz de los autovectores (dispuestos en las columnas).
Calcule los auto-pares de la matriz
| (58) |
Entonces, verifique si, de hecho, para cada auto-par calculado.
Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!

Este texto é disponibilizado nos termos da Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional. Ícones e elementos gráficos podem estar sujeitos a condições adicionais.