Transposición de matriz usando numpy

Transposición de matriz usando numpy

En esta publicación, vemos cómo la operación de transposición de matriz se puede realizar utilizando Numpy. La operación de transposición es una operación en una matriz de tal manera que voltea la matriz sobre la diagonal. La transposición de la matriz en una matriz 2-D de dimensión n * m produce una matriz de salida de dimensión m * n.

$ python3
Python 3.8.5 (predeterminado, 8 de marzo 2021, 13:02:45)
[GCC 9.3.0] en Linux2

Escriba "ayuda", "copyright", "créditos" o "licencia" para obtener más información.

>>> importar numpy como np
>>> a = np.matriz ([[1, 2, 3],
... [4, 5, 6]])
>>> A.forma
(2, 3)
>>> C = A.transponer()
>>> C
Array ([[1, 4],
[2, 5],
[3, 6]])
>>> C.forma
(3, 2)

Una transposición de matriz en una matriz 1-D no tiene ningún efecto ya que la transposición es la misma que la matriz original.

>>> a = np.los que (3)
>>> A
matriz ([1., 1., 1.])
>>> A.forma
(3,)
>>> a_transpose = a.Transpose () # Transposición de matriz 1-D
>>> a_transpose
matriz ([1., 1., 1.])
>>> a_transpose.forma
(3,)

Para convertir una matriz 1-D a su transposición como vector 2-D, se debe agregar un eje adicional. Continuando con el ejemplo anterior, el NP.Newaxis puede crear un nuevo vector de columna 2-D a partir de un vector 1-D.

>>> A
matriz ([1., 1., 1.])
>>> A [NP.Newaxis,]
matriz ([[1., 1., 1.]])
>>> A [NP.Newaxis,].forma
(1, 3)
>>> a [:, np.Newaxis]
matriz ([[1.],
[1.],
[1.]])
>>> a [:, np.Newaxis].forma
(3, 1)

La operación de transposición en una matriz también toma un argumento. Si los ejes de argumento son ninguno, la operación de transposición revierte el orden de los ejes.

>>> a = np.Arange (2 * 3 * 4).remodelar (2, 3, 4)
>>> A
Array ([[[0, 1, 2, 3],
[4, 5, 6, 7],
[8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
>>> a_t = a.transponer()
>>> a_t
Array ([[[0, 12],
[4, 16],
[8, 20]],
[[1, 13],
[5, 17],
[9, 21]],
[[2, 14],
[6, 18],
[10, 22]],
[[3, 15],
[7, 19],
[11, 23]]])
>>> A.forma
(2, 3, 4)
>>> a_t.forma
(4, 3, 2)

En el ejemplo anterior, la dimensión de la matriz A fue (2, 3, 4), y después del transposición, se convirtió (4, 3, 2). La regla de transposición predeterminada revierte el eje de la matriz de entrada I.E en [i, j, k] = a [k, j, i].

Esta permutación predeterminada se puede cambiar pasando una tupla de enteros como argumento de entrada para transponer. En el siguiente ejemplo, la J en el lugar de la tupla significa que el eje de A se convertirá en un.Transpose () s Axy. Continuando con el ejemplo anterior, pasamos los argumentos (1, 2, 0) a un.transponer(). La regla de transposición así seguida aquí está en [i, j, k] = a [j, k, i].

>>> a_t = a.Transposición ((1, 2, 0))
>>> a_t.forma
(3, 4, 2)
>>> a_t
Array ([[[0, 12],
[1, 13],
[2, 14],
[3, 15]],
[[4, 16],
[5, 17],
[6, 18],
[7, 19]],
[[8, 20],
[9, 21],
[10, 22],
[11, 23]]])