
Vous pouvez convertir un tableau NumPy numpy.ndarray et une liste de types intégrés Python l’un à l’autre.
- Convertissez une liste en tableau NumPy :
numpy.array()
- Convertissez un tableau NumPy en liste :
tolist()
Par commodité, le terme « convertir » est utilisé, mais en réalité, un nouvel objet est généré tout en conservant l’objet d’origine.
Convertissez une liste en tableau NumPy :numpy.array()
Vous pouvez convertir une liste en un tableau NumPy en passant une liste à numpy.array().
import numpy as np
l_1d = [0, 1, 2]
arr_1d = np.array(l_1d)
print(arr_1d)
print(arr_1d.dtype)
# [0 1 2]
# int64
Le type de données dtype de numpy.ndarray généré est automatiquement déterminé à partir de la liste d’origine mais peut également être spécifié avec le paramètre dtype.
Consultez l’article suivant pour plus d’informations sur le type de données dtype dans NumPy.
arr_1d_f = np.array(l_1d, dtype=float)
print(arr_1d_f)
print(arr_1d_f.dtype)
# [0. 1. 2.]
# float64
Il en va de même pour les tableaux multidimensionnels de deux dimensions ou plus.
l_2d = [[0, 1, 2], [3, 4, 5]]
arr_2d = np.array(l_2d)
print(arr_2d)
# [[0 1 2]
# [3 4 5]]
La liste multidimensionnelle est juste une liste imbriquée (liste de listes), donc peu importe si le nombre d’éléments dans la liste ne correspond pas.
Cependant, le passer à numpy.array() crée numpy.ndarray dont les éléments sont une liste intégrée.
Notez que les éléments manquants ne peuvent pas être remplis.
l_2d_error = [[0, 1, 2], [3, 4]]
arr_2d_error = np.array(l_2d_error)
print(arr_2d_error)
# [list([0, 1, 2]) list([3, 4])]
print(arr_2d_error.dtype)
# object
print(arr_2d_error.shape)
# (2,)
Convertissez un tableau NumPy en liste :tolist()
Vous pouvez convertir un tableau NumPy en liste avec la méthode tolist() de numpy.ndarray.
En fonction du nombre de dimensions du numpy.ndarray d’origine, une liste imbriquée est générée. Chaque élément est accessible en répétant l’indice [n].
1D :
arr_1d = np.arange(3)
print(arr_1d)
# [0 1 2]
l_1d = arr_1d.tolist()
print(l_1d)
# [0, 1, 2]
2D :
arr_2d = np.arange(6).reshape((2, 3))
print(arr_2d)
# [[0 1 2]
# [3 4 5]]
l_2d = arr_2d.tolist()
print(l_2d)
# [[0, 1, 2], [3, 4, 5]]
3D :
arr_3d = np.arange(24).reshape((2, 3, 4))
print(arr_3d)
# [[[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]]
# [[12 13 14 15]
# [16 17 18 19]
# [20 21 22 23]]]
l_3d = arr_3d.tolist()
print(l_3d)
# [[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]]
print(l_3d[0])
# [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]
print(l_3d[0][0])
# [0, 1, 2, 3]
print(l_3d[0][0][0])
# 0