Zip NumPy Array

Muhammad Maisam Abbas 30 gennaio 2023
  1. NumPy Zip Con la funzione list(zip())
  2. NumPy Zip con la funzione numpy.stack()
  3. NumPy Zip con la funzione numpy.column_stack()
Zip NumPy Array

Questo tutorial introdurrà i metodi per comprimere due array NumPy 1D in un singolo array NumPy 2D in Python.

NumPy Zip Con la funzione list(zip())

Se abbiamo due array 1D e vogliamo comprimerli insieme all’interno di un array 2D, possiamo usare la funzione list(zip()) in Python. Questo approccio prevede la compressione degli array all’interno di un elenco. La funzione list(zip(a,b)) prende gli array a e b come argomento e restituisce una lista. Possiamo quindi convertire la lista zippato in un array con la funzione numpy.array(). Vedere il seguente esempio di codice.

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)

Produzione:

[[1 2]
 [3 4]
 [5 6]
 [7 8]]

Per prima cosa abbiamo creato i due array 1D a e b con la funzione np.array() e li abbiamo compressi insieme alla funzione np.array(list(zip(a,b))).

Questo approccio non è molto efficiente perché dobbiamo convertire tra array ed elenchi.

NumPy Zip con la funzione numpy.stack()

Possiamo anche usare la funzione numpy.stack() per raggiungere lo stesso obiettivo dell’esempio precedente. Questo approccio è più efficiente del precedente perché non viene eseguita alcuna conversione di tipo. La funzione numpy.stack() viene utilizzata per unire due o più array secondo un asse specificato. Possiamo specificare il parametro axis uguale a 1 per ottenere un risultato simile all’esempio precedente. Vedere il seguente esempio di codice.

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)

Produzione:

[[1 2]
 [3 4]
 [5 6]
 [7 8]]

Per prima cosa abbiamo creato i due array 1D a e b con la funzione np.array() e li abbiamo compressi insieme alla funzione np.stack((a,b), axis=1).

NumPy Zip con la funzione numpy.column_stack()

La funzione numpy.column_stack() è un altro metodo che può essere utilizzato per comprimere due array 1D in un singolo array 2D in Python. La funzione numpy.column_stack() viene utilizzata per unire due o più array 1D come colonne in un singolo array 2D. Non è necessario specificare alcun parametro dell’asse per questo approccio. Vedere il seguente esempio di codice.

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)

Produzione:

[[1 2]
 [3 4]
 [5 6]
 [7 8]]

Per prima cosa abbiamo creato i due array 1D a e b con la funzione np.array() e li abbiamo compressi insieme alla funzione np.column_stack(a,b).

Questo approccio è il migliore rispetto ai due metodi precedenti. Perché non c’è conversione di tipo e non è necessario specificare alcun asse in questo approccio.

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