Matrizes Zip NumPy

Muhammad Maisam Abbas 30 janeiro 2023
  1. NumPy Zip com a função list(zip())
  2. NumPy Zip com a função numpy.stack()
  3. NumPy Zip com a função numpy.column_stack()
Matrizes Zip NumPy

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.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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