Matrizes Zip NumPy
-
NumPy Zip com a função
list(zip())
-
NumPy Zip com a função
numpy.stack()
-
NumPy Zip com a função
numpy.column_stack()
Este tutorial irá apresentar os métodos para compactar dois arrays NumPy 1D em um único array NumPy 2D em Python.
NumPy Zip com a função list(zip())
Se tivermos dois arrays 1D e quisermos compactá-los juntos dentro de um array 2D, podemos usar a função list(zip())
em Python. Essa abordagem envolve compactar os arrays juntos em uma lista. A função list(zip(a,b))
leva as matrizes a
e b
como um argumento e retorna uma lista. Podemos então converter a lista compactada em um array com a função numpy.array()
. Veja o seguinte exemplo de código.
import numpy as np
a = np.array([1, 3, 5, 7])
b = np.array([2, 4, 6, 8])
c = np.array(list(zip(a, b)))
print(c)
Resultado:
[[1 2]
[3 4]
[5 6]
[7 8]]
Primeiro criamos os dois arrays 1D a
e b
com a função np.array()
e os compactamos juntos com a função np.array(list(zip(a,b)))
.
Essa abordagem não é muito eficiente porque temos que converter entre arrays e listas.
NumPy Zip com a função numpy.stack()
Também podemos usar a função numpy.stack()
para atingir o mesmo objetivo do exemplo anterior. Essa abordagem é mais eficiente do que a abordagem anterior porque nenhuma conversão de tipo é realizada. A função numpy.stack()
é usada para unir dois ou mais arrays de acordo com um eixo especificado. Podemos especificar o parâmetro axis
igual a 1
para obter um resultado semelhante ao exemplo anterior. Veja o seguinte exemplo de código.
import numpy as np
a = np.array([1, 2, 3, 4, 5])
b = np.array([6, 7, 8, 9, 10])
c = np.stack((a, b), axis=1)
print(c)
Resultado:
[[1 2]
[3 4]
[5 6]
[7 8]]
Primeiro criamos os dois arrays 1D a
e b
com a função np.array()
e os compactamos juntos com a função np.stack((a,b), axis=1)
.
NumPy Zip com a função numpy.column_stack()
A função numpy.column_stack()
é outro método que pode ser usado para compactar dois arrays 1D em um único array 2D em Python. A função numpy.column_stack()
é usada para unir dois ou mais arrays 1D como colunas em um único array 2D. Não precisamos especificar nenhum parâmetro do eixo para esta abordagem. Veja o seguinte exemplo de código.
import numpy as np
a = np.array([1, 3, 5, 7])
b = np.array([2, 4, 6, 8])
d = np.column_stack((a, b))
print(d)
Resultado:
[[1 2]
[3 4]
[5 6]
[7 8]]
Primeiro criamos os dois arrays 1D a
e b
com a função np.array()
e os compactamos juntos com a função np.column_stack(a,b)
.
Essa abordagem é a melhor em comparação com os dois métodos anteriores. Porque não há conversão de tipo e não precisamos especificar nenhum eixo nesta abordagem.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn