Matrix Transpose usando Numpy

Matrix Transpose usando Numpy

Neste post, vemos como a operação de transposição da matriz pode ser executada usando Numpy. A operação de transposição é uma operação em uma matriz, de modo que vira a matriz sobre a diagonal. A matriz transposta em uma matriz 2D de dimensão n * m produz uma matriz de saída da dimensão m * n.

$ python3
Python 3.8.5 (padrão, 8 de março de 2021, 13:02:45)
[GCC 9.3.0] no Linux2

Digite “ajuda”, “direitos autorais”, “créditos” ou “licença” para obter mais informações.

>>> importar numpy como np
>>> a = np.Array ([[1, 2, 3],
… [4, 5, 6]])
>>> a.forma
(2, 3)
>>> c = a.transpor()
>>> c
Array ([[1, 4],
[2, 5],
[3, 6]])
>>> c.forma
(3, 2)

Uma transposição de matriz em uma matriz 1-D não tem efeito, pois a transposição é a mesma que a matriz original.

>>> a = np.um (3)
>>> a
Array ([1., 1., 1.]))
>>> a.forma
(3,)
>>> a_transpose = a.Transpose () # Transpost of 1-D Array
>>> a_transpose
Array ([1., 1., 1.]))
>>> a_transpose.forma
(3,)

Para converter uma matriz 1-D em sua transposição como um vetor 2-D, um eixo adicional deve ser adicionado. Continuando do exemplo anterior, o NP.O newaxis pode criar um novo vetor de coluna 2D a partir de um vetor 1-D.

>>> a
Array ([1., 1., 1.]))
>>> um [np.newaxis ,:]
Array ([[1., 1., 1.]])
>>> um [np.newaxis ,:].forma
(1, 3)
>>> A [:, NP.newaxis]
Array ([[1.],
[1.],
[1.]])
>>> A [:, NP.newaxis].forma
(3, 1)

A operação de transposição em uma matriz também pega um argumento eixos. Se os eixos de argumento não forem, a operação de transposição reverte a ordem dos eixos.

>>> 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.transpor()
>>> 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)

No exemplo acima, a dimensão da matriz A era (2, 3, 4) e, após a transposição, tornou -se (4, 3, 2). A regra de transposição padrão reverte o eixo da matriz de entrada i.e em [i, j, k] = a [k, j, i].

Essa permutação padrão pode ser alterada passando uma tupla de números inteiros como um argumento de entrada para transpor. No exemplo abaixo, o j no i -és.O eixo JTH de Transpose (). Continuando do exemplo anterior, passamos os argumentos (1, 2, 0) para um.transpor(). A regra de transposição assim seguida aqui está em [i, j, k] = a [j, k, i].

>>> a_t = a.Transpose ((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]]]