Contenu du cours
Numpy Ultime
Numpy Ultime
Aplatissement des Tableaux
Aplatir un tableau signifie le convertir d'un tableau multidimensionnel en un tableau 1D, déroulant essentiellement son contenu.
Cette opération est utile lorsque vous devez traiter les éléments d'un tableau un par un ou lorsque vous souhaitez rendre les données plus adaptées à certains algorithmes.
Il existe trois options possibles pour aplatir dans NumPy :
- Utiliser la méthode
ndarray.reshape(-1)
ou la fonctionnumpy.reshape(array, -1)
; - Utiliser la méthode
ndarray.ravel()
ou la fonctionnumpy.ravel(array)
; - Utiliser la méthode
ndarray.flatten()
.
reshape(-1)
La méthode .reshape(-1)
ou la fonction reshape(array, -1)
renverra un tableau aplati contigu avec le même nombre d'éléments.
Comme nous l'avons déjà mentionné dans le chapitre précédent, -1
calcule automatiquement la taille de la dimension en fonction de la taille du tableau d'origine. Puisque nous passons seulement un entier pour shape
, un tableau 1D avec le même nombre d'éléments est renvoyé.
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.reshape(-1) print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
La méthode .reshape()
ou la fonction respective renvoie une vue du tableau original, donc toute modification apportée au tableau redimensionné affectera également le tableau original.
Utiliser flattened_array = np.reshape(array_2d, -1)
peut être utilisé au lieu d'appeler la méthode.
ravel()
La méthode ndarray.ravel()
ou la fonction numpy.ravel(array)
fonctionne de la même manière que reshape(-1)
et renvoie également une vue du tableau original :
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.ravel() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
flattened_array = np.ravel(array_2d)
peut être utilisé à la place d'appeler la méthode.
ndarray.flatten()
Si vous souhaitez une copie du tableau original, et non une vue, vous pouvez utiliser la méthode .flatten()
:
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.flatten() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Initial array:\n{array_2d}')
Remarque
Vous pouvez toujours copier une vue d'un tableau pour créer un objet séparé et modifier cette copie sans affecter le tableau original.
Swipe to start coding
-
Utilisez correctement la méthode
.flatten()
pour aplatirexam_scores
et stockez le résultat dansexam_scores_flattened
. -
Utilisez correctement la méthode
.reshape()
pour aplatirexam_scores
et stockez le résultat dansexam_scores_reshaped
. -
Utilisez la méthode
.ravel()
pour aplatirexam_scores
et stockez le résultat dansexam_scores_raveled
. -
Parmi les trois tableaux aplatis créés, choisissez celui qui est une copie du tableau original, pas une vue, et assignez
100
à son premier élément (utilisez l'indexation positive).
Solution
Merci pour vos commentaires !
Aplatissement des Tableaux
Aplatir un tableau signifie le convertir d'un tableau multidimensionnel en un tableau 1D, déroulant essentiellement son contenu.
Cette opération est utile lorsque vous devez traiter les éléments d'un tableau un par un ou lorsque vous souhaitez rendre les données plus adaptées à certains algorithmes.
Il existe trois options possibles pour aplatir dans NumPy :
- Utiliser la méthode
ndarray.reshape(-1)
ou la fonctionnumpy.reshape(array, -1)
; - Utiliser la méthode
ndarray.ravel()
ou la fonctionnumpy.ravel(array)
; - Utiliser la méthode
ndarray.flatten()
.
reshape(-1)
La méthode .reshape(-1)
ou la fonction reshape(array, -1)
renverra un tableau aplati contigu avec le même nombre d'éléments.
Comme nous l'avons déjà mentionné dans le chapitre précédent, -1
calcule automatiquement la taille de la dimension en fonction de la taille du tableau d'origine. Puisque nous passons seulement un entier pour shape
, un tableau 1D avec le même nombre d'éléments est renvoyé.
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.reshape(-1) print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
La méthode .reshape()
ou la fonction respective renvoie une vue du tableau original, donc toute modification apportée au tableau redimensionné affectera également le tableau original.
Utiliser flattened_array = np.reshape(array_2d, -1)
peut être utilisé au lieu d'appeler la méthode.
ravel()
La méthode ndarray.ravel()
ou la fonction numpy.ravel(array)
fonctionne de la même manière que reshape(-1)
et renvoie également une vue du tableau original :
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.ravel() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
flattened_array = np.ravel(array_2d)
peut être utilisé à la place d'appeler la méthode.
ndarray.flatten()
Si vous souhaitez une copie du tableau original, et non une vue, vous pouvez utiliser la méthode .flatten()
:
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.flatten() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Initial array:\n{array_2d}')
Remarque
Vous pouvez toujours copier une vue d'un tableau pour créer un objet séparé et modifier cette copie sans affecter le tableau original.
Swipe to start coding
-
Utilisez correctement la méthode
.flatten()
pour aplatirexam_scores
et stockez le résultat dansexam_scores_flattened
. -
Utilisez correctement la méthode
.reshape()
pour aplatirexam_scores
et stockez le résultat dansexam_scores_reshaped
. -
Utilisez la méthode
.ravel()
pour aplatirexam_scores
et stockez le résultat dansexam_scores_raveled
. -
Parmi les trois tableaux aplatis créés, choisissez celui qui est une copie du tableau original, pas une vue, et assignez
100
à son premier élément (utilisez l'indexation positive).
Solution
Merci pour vos commentaires !