Tableaux Zip NumPy

Muhammad Maisam Abbas 30 janvier 2023
  1. NumPy Zip avec la fonction list(zip())
  2. NumPy Zip avec la fonction numpy.stack()
  3. NumPy Zip avec la fonction numpy.column_stack()
Tableaux Zip NumPy

Ce tutoriel présentera les méthodes pour compresser deux tableaux NumPy 1D dans un seul tableau NumPy 2D en Python.

NumPy Zip avec la fonction list(zip())

Si nous avons deux tableaux 1D et que nous voulons les compresser ensemble dans un tableau 2D, nous pouvons utiliser la fonction list(zip()) en Python. Cette approche consiste à compresser les tableaux ensemble dans une liste. La fonction list(zip(a,b)) prend les tableaux a et b en argument et renvoie une liste. Nous pouvons ensuite convertir la liste compressée en un tableau avec la fonction numpy.array(). Voir l’exemple de code suivant.

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)

Production:

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

Nous avons d’abord créé les deux tableaux 1D a et b avec la fonction np.array() et les avons compressés avec la fonction np.array(list(zip(a,b))).

Cette approche n’est pas très efficace car nous devons convertir entre les tableaux et les listes.

NumPy Zip avec la fonction numpy.stack()

Nous pouvons également utiliser la fonction numpy.stack() pour atteindre le même objectif que l’exemple précédent. Cette approche est plus efficace que l’approche précédente car aucune conversion de type n’est effectuée. La fonction numpy.stack() est utilisée pour joindre deux ou plusieurs tableaux selon un axe spécifié. On peut spécifier le paramètre axis égal à 1 pour obtenir un résultat similaire à l’exemple précédent. Voir l’exemple de code suivant.

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)

Production:

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

Nous avons d’abord créé les deux tableaux 1D a et b avec la fonction np.array() et les avons compressés avec la fonction np.stack((a,b), axis=1).

NumPy Zip avec la fonction numpy.column_stack()

La fonction numpy.column_stack() est une autre méthode qui peut être utilisée pour compresser deux tableaux 1D en un seul tableau 2D en Python. La fonction numpy.column_stack() est utilisée pour joindre deux ou plusieurs tableaux 1D sous forme de colonnes dans un seul tableau 2D. Nous n’avons pas à spécifier de paramètre d’axe pour cette approche. Voir l’exemple de code suivant.

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)

Production:

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

Nous avons d’abord créé les deux tableaux 1D a et b avec la fonction np.array() et les avons compressés avec la fonction np.column_stack(a,b).

Cette approche est la meilleure par rapport aux deux méthodes précédentes. Parce qu’il n’y a pas de conversion de type, et nous n’avons à spécifier aucun axe dans cette approche.

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