Copie de Tableaux
Il est souvent nécessaire de créer une copie d’un tableau afin d’effectuer des modifications sans altérer le tableau d’origine.
Affectation simple
Tout d’abord, examinons pourquoi il n’est pas possible de simplement créer une autre variable avec array_2 = array_1, où array_1 est notre tableau d’origine.
123456import 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 modifié la valeur du premier élément de array_2 à 10, mais cette affectation a également modifié la valeur du premier élément de array_1 à 10.
Avec array_2 = array_1, vous ne créez pas un nouveau tableau ; vous créez plutôt une référence vers le même tableau en mémoire. Par conséquent, toute modification apportée à array_2 affectera également array_1.
Pour résoudre ce problème, nous pourrions écrire array_2 = np.array([1, 2, 3]), mais cela impliquerait d'é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 propose une méthode ndarray.copy() comme solution à ce problème.
12345678import 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}')
Nous avons maintenant 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(), il est également possible d'utiliser la fonction copy(), qui prend le tableau en paramètre : array_2 = np.copy(array_1).
La fonction et la méthode fonctionnent de la même manière ; cependant, il existe une nuance. Elles possèdent toutes deux le paramètre order, qui spécifie la disposition en mémoire du tableau, mais leurs valeurs par défaut diffèrent.
L'image ci-dessous montre la structure du tableau sales_data_2021 utilisé dans l'exercice :
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 de ce produit.
- Créez une copie de
sales_data_2021en 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à390et370:- Utilisez un indice positif pour spécifier la ligne ;
- Utilisez une tranche avec uniquement une valeur de
startnégative pour indexer les deux derniers éléments.
Solution
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 3.7
Copie de Tableaux
Glissez pour afficher le menu
Il est souvent nécessaire de créer une copie d’un tableau afin d’effectuer des modifications sans altérer le tableau d’origine.
Affectation simple
Tout d’abord, examinons pourquoi il n’est pas possible de simplement créer une autre variable avec array_2 = array_1, où array_1 est notre tableau d’origine.
123456import 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 modifié la valeur du premier élément de array_2 à 10, mais cette affectation a également modifié la valeur du premier élément de array_1 à 10.
Avec array_2 = array_1, vous ne créez pas un nouveau tableau ; vous créez plutôt une référence vers le même tableau en mémoire. Par conséquent, toute modification apportée à array_2 affectera également array_1.
Pour résoudre ce problème, nous pourrions écrire array_2 = np.array([1, 2, 3]), mais cela impliquerait d'é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 propose une méthode ndarray.copy() comme solution à ce problème.
12345678import 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}')
Nous avons maintenant 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(), il est également possible d'utiliser la fonction copy(), qui prend le tableau en paramètre : array_2 = np.copy(array_1).
La fonction et la méthode fonctionnent de la même manière ; cependant, il existe une nuance. Elles possèdent toutes deux le paramètre order, qui spécifie la disposition en mémoire du tableau, mais leurs valeurs par défaut diffèrent.
L'image ci-dessous montre la structure du tableau sales_data_2021 utilisé dans l'exercice :
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 de ce produit.
- Créez une copie de
sales_data_2021en 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à390et370:- Utilisez un indice positif pour spécifier la ligne ;
- Utilisez une tranche avec uniquement une valeur de
startnégative pour indexer les deux derniers éléments.
Solution
Merci pour vos commentaires !
single