Contenu du cours
Numpy Ultime
Numpy Ultime
Restructuration des Tableaux
Le remodelage des tableaux dans NumPy vous permet de changer la forme d'un tableau tout en préservant tous les éléments. C'est une opération couramment utilisée en apprentissage automatique car de nombreuses fonctions et méthodes des bibliothèques d'apprentissage automatique nécessitent que les tableaux aient une forme spécifique.
Formes de tableau
Par exemple, un tableau 1D de longueur 5
a une forme de (5,)
, tandis qu'un tableau 2D avec 3
lignes et 4
colonnes a une forme de (3, 4)
:
import numpy as np array_1d = np.array([5, 7, 1, 10, 9]) array_2d = np.zeros((3, 4)) print(array_1d.shape, array_2d.shape)
ndarray.reshape()
Les tableaux NumPy ont une méthode .reshape()
pour le remodelage. Vous n'avez besoin que de passer la forme du tableau résultant soit comme un entier, un tuple d'entiers, ou des entiers comme arguments séparés.
Cette méthode ne modifie pas le tableau en place, mais retourne un nouveau tableau.
Remarque
En fait,
.reshape()
retourne une vue du tableau original, donc toute modification apportée au tableau remodelé affectera également le tableau original.
import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = array.reshape(3, 4) print(reshaped_array_2d) # Reshaping the array to a 2x2x3 3D array reshaped_array_3d = array.reshape(2, 2, 3) print(reshaped_array_3d)
Remarque
Le nombre d'éléments dans le tableau remodelé doit être le même que dans le tableau original, vous ne pouvez donc pas passer une forme arbitraire.
Dans notre exemple, remodeler le tableau en une forme de 3 lignes et 4 colonnes (3 x 4) ou en une forme de 2 blocs, chacun contenant 2 lignes et 3 colonnes (2 x 2 x 3) donne toujours un total de 12 éléments.
Remodelage avec -1
Dans NumPy, lorsque vous utilisez -1
dans la méthode .reshape()
, il calcule automatiquement la taille de cette dimension en fonction de la taille du tableau d'origine, tout en gardant le même nombre total d'éléments.
Utiliser .reshape(-1, 1)
est particulièrement utile en apprentissage automatique lorsque nous devons remodeler un tableau 1D en un tableau 2D avec une colonne. Le nombre de lignes dans ce cas est égal au nombre d'éléments (calculé automatiquement).
import numpy as np # Creating a 1D array from 0 to 4 inclusive array = np.arange(5) # Reshaping the array to a 2D array with one column reshaped_array = array.reshape(-1, 1) print(reshaped_array)
Le tableau redimensionné est stocké sous forme de tableau 2D avec 5
lignes et 1
colonne, ayant la forme (5, 1)
. En revanche, le tableau 1D initial a la forme (5,)
, qui est un tuple avec un seul élément. Pour tout tableau 1D, la forme est toujours (n,)
, où n
représente le nombre d'éléments.
numpy.reshape()
La fonction reshape()
dans NumPy est identique à la méthode .reshape()
, mais vous devez passer un tableau comme premier argument. Pour le paramètre shape
, vous pouvez passer soit un tuple d'entiers soit un seul entier, par exemple, np.reshape(array, (3, 4))
:
import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = np.reshape(array, (3, 4)) print(reshaped_array_2d)
Swipe to start coding
Vous avez un tableau sales_data_2021
avec des données de ventes trimestrielles simulées pour deux produits en 2021. Les 4 premiers éléments représentent les ventes trimestrielles pour le premier produit, et les 4 derniers éléments représentent les ventes trimestrielles pour le deuxième produit.
-
Utilisez la méthode appropriée de
sales_data_2021
pour le remodeler en un tableau 2D. -
La première ligne doit contenir les ventes trimestrielles pour le premier produit.
-
La deuxième ligne doit contenir les ventes trimestrielles pour le deuxième produit.
Solution
Merci pour vos commentaires !
Restructuration des Tableaux
Le remodelage des tableaux dans NumPy vous permet de changer la forme d'un tableau tout en préservant tous les éléments. C'est une opération couramment utilisée en apprentissage automatique car de nombreuses fonctions et méthodes des bibliothèques d'apprentissage automatique nécessitent que les tableaux aient une forme spécifique.
Formes de tableau
Par exemple, un tableau 1D de longueur 5
a une forme de (5,)
, tandis qu'un tableau 2D avec 3
lignes et 4
colonnes a une forme de (3, 4)
:
import numpy as np array_1d = np.array([5, 7, 1, 10, 9]) array_2d = np.zeros((3, 4)) print(array_1d.shape, array_2d.shape)
ndarray.reshape()
Les tableaux NumPy ont une méthode .reshape()
pour le remodelage. Vous n'avez besoin que de passer la forme du tableau résultant soit comme un entier, un tuple d'entiers, ou des entiers comme arguments séparés.
Cette méthode ne modifie pas le tableau en place, mais retourne un nouveau tableau.
Remarque
En fait,
.reshape()
retourne une vue du tableau original, donc toute modification apportée au tableau remodelé affectera également le tableau original.
import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = array.reshape(3, 4) print(reshaped_array_2d) # Reshaping the array to a 2x2x3 3D array reshaped_array_3d = array.reshape(2, 2, 3) print(reshaped_array_3d)
Remarque
Le nombre d'éléments dans le tableau remodelé doit être le même que dans le tableau original, vous ne pouvez donc pas passer une forme arbitraire.
Dans notre exemple, remodeler le tableau en une forme de 3 lignes et 4 colonnes (3 x 4) ou en une forme de 2 blocs, chacun contenant 2 lignes et 3 colonnes (2 x 2 x 3) donne toujours un total de 12 éléments.
Remodelage avec -1
Dans NumPy, lorsque vous utilisez -1
dans la méthode .reshape()
, il calcule automatiquement la taille de cette dimension en fonction de la taille du tableau d'origine, tout en gardant le même nombre total d'éléments.
Utiliser .reshape(-1, 1)
est particulièrement utile en apprentissage automatique lorsque nous devons remodeler un tableau 1D en un tableau 2D avec une colonne. Le nombre de lignes dans ce cas est égal au nombre d'éléments (calculé automatiquement).
import numpy as np # Creating a 1D array from 0 to 4 inclusive array = np.arange(5) # Reshaping the array to a 2D array with one column reshaped_array = array.reshape(-1, 1) print(reshaped_array)
Le tableau redimensionné est stocké sous forme de tableau 2D avec 5
lignes et 1
colonne, ayant la forme (5, 1)
. En revanche, le tableau 1D initial a la forme (5,)
, qui est un tuple avec un seul élément. Pour tout tableau 1D, la forme est toujours (n,)
, où n
représente le nombre d'éléments.
numpy.reshape()
La fonction reshape()
dans NumPy est identique à la méthode .reshape()
, mais vous devez passer un tableau comme premier argument. Pour le paramètre shape
, vous pouvez passer soit un tuple d'entiers soit un seul entier, par exemple, np.reshape(array, (3, 4))
:
import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = np.reshape(array, (3, 4)) print(reshaped_array_2d)
Swipe to start coding
Vous avez un tableau sales_data_2021
avec des données de ventes trimestrielles simulées pour deux produits en 2021. Les 4 premiers éléments représentent les ventes trimestrielles pour le premier produit, et les 4 derniers éléments représentent les ventes trimestrielles pour le deuxième produit.
-
Utilisez la méthode appropriée de
sales_data_2021
pour le remodeler en un tableau 2D. -
La première ligne doit contenir les ventes trimestrielles pour le premier produit.
-
La deuxième ligne doit contenir les ventes trimestrielles pour le deuxième produit.
Solution
Merci pour vos commentaires !