Contenu du cours
Numpy Ultime
Numpy Ultime
Copier des Tableaux
Souvent, vous devez créer une copie d'un tableau pour apporter des modifications sans affecter le tableau original.
Affectation Simple
Tout d'abord, nous allons discuter pourquoi nous ne pouvons pas simplement créer une autre variable en utilisant array_2 = array_1
, où array_1
est notre tableau original.
import numpy as np array_1 = np.array([1, 2, 3]) array_2 = array_1 # Setting the first element of array_2 to 10 array_2[0] = 10 print(array_1)
Nous avons changé la valeur du premier élément de array_2
à 10
, mais cette assignation a également changé la valeur du premier élément de array_1
à 10
.
Remarque
Avec
array_2 = array_1
, vous ne créez pas un nouveau tableau ; au lieu de cela, vous créez une référence au même tableau en mémoire. En conséquence, toute modification apportée àarray_2
affectera égalementarray_1
.
Pour résoudre ce problème, nous pourrions écrire array_2 = np.array([1, 2, 3])
, mais cela signifierait écrire le même code deux fois. Rappelez-vous le principe clé en programmation : Ne vous répétez pas.
Méthode ndarray.copy()
Heureusement, NumPy dispose d'une méthode ndarray.copy()
comme solution à ce problème.
import numpy as np array_1 = np.array([1, 2, 3]) # Copying the contents of array_1 array_2 = array_1.copy() # Setting the first element of array_2 to 10 array_2[0] = 10 print(f'Initial array: {array_1}') print(f'Modified copy: {array_2}')
Maintenant, nous avons créé un nouveau tableau pour array_2
avec les mêmes éléments que array_1
.
Pour les tableaux 2D, la procédure de copie est exactement la même.
Fonction numpy.copy()
Au lieu de la méthode .copy()
, nous pouvons également utiliser la fonction copy()
, qui prend le tableau comme paramètre : array_2 = np.copy(array_1)
.
La fonction et la méthode fonctionnent de la même manière ; cependant, il y a une nuance. Elles ont toutes deux le paramètre order
, qui spécifie la disposition en mémoire du tableau, mais leurs valeurs par défaut sont différentes.
L'image ci-dessous montre la structure du tableau sales_data_2021
utilisé dans la tâche :
Swipe to start coding
Vous analysez les données de ventes trimestrielles d'une entreprise pour l'année 2021. Les données sont stockées dans un tableau NumPy nommé sales_data_2021
, où chaque ligne représente un produit spécifique, et chaque colonne représente les ventes trimestrielles pour ce produit.
-
Créez une copie de
sales_data_2021
en utilisant la méthode appropriée d'un tableau NumPy et stockez-la danssales_data_2022
. -
Mettez à jour les deux derniers éléments de la première ligne (représentant les ventes trimestrielles d'un produit) dans
sales_data_2022
à 390 et 370 :- Utilisez un indice positif pour spécifier la ligne;
- Utilisez une tranche avec seulement une valeur de
début
négative pour indexer les deux derniers éléments.
Solution
Merci pour vos commentaires !
Copier des Tableaux
Souvent, vous devez créer une copie d'un tableau pour apporter des modifications sans affecter le tableau original.
Affectation Simple
Tout d'abord, nous allons discuter pourquoi nous ne pouvons pas simplement créer une autre variable en utilisant array_2 = array_1
, où array_1
est notre tableau original.
import numpy as np array_1 = np.array([1, 2, 3]) array_2 = array_1 # Setting the first element of array_2 to 10 array_2[0] = 10 print(array_1)
Nous avons changé la valeur du premier élément de array_2
à 10
, mais cette assignation a également changé la valeur du premier élément de array_1
à 10
.
Remarque
Avec
array_2 = array_1
, vous ne créez pas un nouveau tableau ; au lieu de cela, vous créez une référence au même tableau en mémoire. En conséquence, toute modification apportée àarray_2
affectera égalementarray_1
.
Pour résoudre ce problème, nous pourrions écrire array_2 = np.array([1, 2, 3])
, mais cela signifierait écrire le même code deux fois. Rappelez-vous le principe clé en programmation : Ne vous répétez pas.
Méthode ndarray.copy()
Heureusement, NumPy dispose d'une méthode ndarray.copy()
comme solution à ce problème.
import numpy as np array_1 = np.array([1, 2, 3]) # Copying the contents of array_1 array_2 = array_1.copy() # Setting the first element of array_2 to 10 array_2[0] = 10 print(f'Initial array: {array_1}') print(f'Modified copy: {array_2}')
Maintenant, nous avons créé un nouveau tableau pour array_2
avec les mêmes éléments que array_1
.
Pour les tableaux 2D, la procédure de copie est exactement la même.
Fonction numpy.copy()
Au lieu de la méthode .copy()
, nous pouvons également utiliser la fonction copy()
, qui prend le tableau comme paramètre : array_2 = np.copy(array_1)
.
La fonction et la méthode fonctionnent de la même manière ; cependant, il y a une nuance. Elles ont toutes deux le paramètre order
, qui spécifie la disposition en mémoire du tableau, mais leurs valeurs par défaut sont différentes.
L'image ci-dessous montre la structure du tableau sales_data_2021
utilisé dans la tâche :
Swipe to start coding
Vous analysez les données de ventes trimestrielles d'une entreprise pour l'année 2021. Les données sont stockées dans un tableau NumPy nommé sales_data_2021
, où chaque ligne représente un produit spécifique, et chaque colonne représente les ventes trimestrielles pour ce produit.
-
Créez une copie de
sales_data_2021
en utilisant la méthode appropriée d'un tableau NumPy et stockez-la danssales_data_2022
. -
Mettez à jour les deux derniers éléments de la première ligne (représentant les ventes trimestrielles d'un produit) dans
sales_data_2022
à 390 et 370 :- Utilisez un indice positif pour spécifier la ligne;
- Utilisez une tranche avec seulement une valeur de
début
négative pour indexer les deux derniers éléments.
Solution
Merci pour vos commentaires !