NumPy Librería de matrices (Matrix)

NumPy incluye una librería de matricesnumpy.matlib, las funciones de este módulo devuelven una matriz, no un objeto ndarray.

numpy.matlibEstá dedicado a crear y manipular objetos de matriz (matrix). Aunque el núcleo de NumPy admite arreglos multidimensionales (ndarray), numpy.matlib proporciona funciones convenientes que devuelven específicamente el tipo de matriz, lo que facilita a los usuarios operaciones tradicionales de álgebra lineal.

Unamatriz es un arreglo formado porfilas (row)columnas (column) de elementos ordenados en un arreglo rectangular.

Los elementos de una matriz pueden ser números, símbolos o expresiones matemáticas. A continuación se muestra una matriz de 2 filas y 3 columnas compuesta por 6 elementos numéricos:

Matriz transpuesta

En NumPy, además de usar la función numpy.transpose para intercambiar las dimensiones de un arreglo, también se puede usarTatributo.

Por ejemplo, si se tiene una matriz de m filas y n columnas, usando la función t() se puede convertir en una matriz de n filas y m columnas.

Ejemplo

import numpy as np a = np.arange(12).reshape(3,4) print ('Arreglo original:') print (a) print ('\n') print ('Arreglo transpuesto:') print (a.T)

El resultado de salida es el siguiente:

原数组:
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]


转置数组:
[[ 0  4  8]
 [ 1  5  9]
 [ 2  6 10]
 [ 3  7 11]]

matlib.empty()

La función matlib.empty() devuelve una nueva matriz. El formato de sintaxis es:

numpy.matlib.empty(shape, dtype, order)

Descripción de parámetros:

  • shape: entero o tupla de enteros que define la forma de la nueva matriz
  • Dtype: opcional, tipo de dato
  • order: C (prioridad de filas) o F (prioridad de columnas)

Ejemplo

import numpy.matlib import numpy as np print (np.matlib.empty((2,2))) # Rellenar con datos aleatorios

El resultado de salida es:

[[-1.49166815e-154 -1.49166815e-154]
 [ 2.17371491e-313  2.52720790e-212]]

numpy.matlib.zeros()

La función numpy.matlib.zeros() crea una matriz llena de ceros.

Ejemplo

import numpy.matlib import numpy as np print (np.matlib.zeros((2,2)))

El resultado de salida es:

[[0. 0.]
 [0. 0.]]

numpy.matlib.ones()

La función numpy.matlib.ones() crea una matriz llena de unos.

Ejemplo

import numpy.matlib import numpy as np print (np.matlib.ones((2,2)))

El resultado de salida es:

[[1. 1.]
 [1. 1.]]

numpy.matlib.eye()

La función numpy.matlib.eye() devuelve una matriz con elementos en la diagonal iguales a 1 y ceros en las demás posiciones.

numpy.matlib.eye(n, M,k, dtype)

Descripción de parámetros:

  • n: número de filas de la matriz devuelta
  • M: número de columnas de la matriz devuelta, por defecto n
  • k: índice de la diagonal
  • dtype: tipo de dato

Ejemplo

import numpy.matlib import numpy as np print (np.matlib.eye(n = 3, M = 4, k = 0, dtype = float))

El resultado de salida es:

[[1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]]

numpy.matlib.identity()

La función numpy.matlib.identity() devuelve una matriz identidad del tamaño dado.

Una matriz identidad es una matriz cuadrada en la que los elementos de la diagonal desde la esquina superior izquierda hasta la esquina inferior derecha (llamada diagonal principal) son todos 1, y todos los demás son 0.

Ejemplo

import numpy.matlib import numpy as np # Tamaño 5, tipo flotante print (np.matlib.identity(5, dtype = float))

El resultado de salida es:

[[ 1.  0.  0.  0.  0.] 
 [ 0.  1.  0.  0.  0.] 
 [ 0.  0.  1.  0.  0.] 
 [ 0.  0.  0.  1.  0.] 
 [ 0.  0.  0.  0.  1.]]

numpy.matlib.rand()

La función numpy.matlib.rand() crea una matriz de tamaño dado, con datos rellenados aleatoriamente.

Ejemplo

import numpy.matlib import numpy as np print (np.matlib.rand(3,3))

El resultado de salida es:

[[0.23966718 0.16147628 0.14162   ]
 [0.28379085 0.59934741 0.62985825]
 [0.99527238 0.11137883 0.41105367]]

Las matrices son siempre bidimensionales, mientras que ndarray es un arreglo de n dimensiones. Ambos objetos son intercambiables.

Ejemplo

import numpy.matlib import numpy as np i = np.matrix('1,2;3,4') print (i)

El resultado de salida es:

[[1  2] 
 [3  4]]

Ejemplo

import numpy.matlib import numpy as np j = np.asarray(i) print (j)

El resultado de salida es:

[[1  2] 
 [3  4]]

Ejemplo

import numpy.matlib import numpy as np k = np.asmatrix (j) print (k)

El resultado de salida es:

[[1  2] 
 [3  4]]

Las siguientes funciones también existen en el espacio de nombres de NumPy, pero devuelven objetos de matriz.

Nombre de la función Descripción de parámetros Descripción
matrix(data[, dtype, copy]) data: similar a un arreglo o cadena, dtype: tipo de dato, copy: si copiar Crea un objeto de matriz a partir de un arreglo o cadena.
asmatrix(data[, dtype]) data: datos de entrada, dtype: tipo de dato (opcional) Convierte la entrada en un objeto de matriz.
bmat(obj[, ldict, gdict]) obj: cadena o secuencia anidada, ldict, gdict: diccionarios de espacio de nombres (opcional) Construye una matriz a partir de una cadena, secuencia anidada o arreglo.
empty(shape[, dtype, order]) shape: forma, dtype: tipo de dato, order: orden de almacenamiento Crea una matriz con elementos sin inicializar.
zeros(shape[, dtype, order]) shape: forma, dtype: tipo de dato, order: orden de almacenamiento Crea una matriz de todos ceros.
ones(shape[, dtype, order]) shape: forma, dtype: tipo de dato, order: orden de almacenamiento Crea una matriz de todos unos.
eye(n[, M, k, dtype, order]) n: número de filas, M: número de columnas, k: desplazamiento de la diagonal, dtype: tipo de dato, order: orden de almacenamiento Crea una matriz con unos en la diagonal y ceros en el resto.
identity(n[, dtype]) n: tamaño, dtype: tipo de dato (opcional) Crea una matriz cuadrada identidad.
repmat(a, m, n) a: arreglo o matriz, m, n: número de repeticiones Repite el arreglo o la matriz m filas y n columnas.
rand(args) args: especifica la forma de la matriz Genera una matriz aleatoria de distribución uniforme con la forma especificada.
randn(args) args: especifica la forma de la matriz Genera una matriz aleatoria de distribución normal estándar con la forma especificada.

Notas

  • Aunquenumpy.matlibes conveniente, pero NumPy recomienda oficialmente usarndarrayy@operadores para realizar operaciones con matrices, porquematrixel tipo tiene algunas limitaciones y puede quedar obsoleto en versiones futuras.
  • En código nuevo, se recomienda usar preferentementendarray, para garantizar una mejor compatibilidad y flexibilidad.
Otras extensiones