Transpor um 1D Array em NumPy
Arrays e matrizes formam o núcleo desta biblioteca Python. As transposições dessas matrizes e matrizes desempenham um papel crítico em alguns assuntos, como o aprendizado de máquina. No NumPy, é simples calcular a transposição de um array ou matriz.
Transpor um array 1D em NumPy
Para transpor um array ou matriz em NumPy, temos que usar o atributo T
que armazena o array ou matriz transposta.
O atributo T
é exclusivo para matrizes NumPy, ou seja, apenas ndarray
. Este atributo é inválido para listas Python.
Teoricamente, é possível transpor um array 1D, mas tecnicamente, ou mais precisamente, em termos de linguagens de programação, não é possível transpor um array 1D.
Não me entenda mal com esta afirmação. Acontece que transpor um array 1D é um pouco diferente em Python ou em qualquer outra linguagem de programação. Tudo se resume a como os arrays são representados nas linguagens de programação.
Um array 1D é simplesmente uma linha de um array. Se tivermos que transpor essa matriz, tecnicamente matriz, devemos converter essa matriz 1D em um array 2D. E então transponha a matriz 2-D usando as funções designadas.
Consulte o código a seguir para obter uma explicação melhor.
import numpy as np
a = [1, 2, 3, 4, 5]
b = np.array(a)
c = np.array([a])
print(b)
print(c)
print(b.shape)
print(c.shape)
print(b.T)
print(c.T)
Resultado:
[1 2 3 4 5]
[[1 2 3 4 5]]
(5,)
(1, 5)
[1 2 3 4 5]
[[1]
[2]
[3]
[4]
[5]]
Primeiro, formamos duas matrizes NumPy, b
é 1D e c
é 2D, usando o método np.array()
e uma lista Python. Para converter a lista em um array 2D, nós a envolvemos por colchetes []
. Em seguida, imprimimos os arrays NumPy e suas respectivas formas.
Mas a coisa mais importante a notar é que a transposição do array 1D é a mesma que a própria matriz, mas a transposição do array 2D é totalmente alterada. E os resultados são bastante óbvios.
A matriz 2D não transposta possui um array com cinco elementos que representam uma linha do array. Quando transpostas, havia cinco matrizes dentro do array 2D representando cinco linhas do array transposta com um elemento em cada linha. E é assim que a transposição funciona!
Considerando que, no caso do array 1D, a mesma matriz foi retornada porque a matriz transposta de [1 2 3 4 5]
em Python se parece com [[1] [2] [3] [4] [5]
. E esse resultado requer que nosso array original seja 2D em vez de 1D.