Il est temps de procéder à un découpage.
Avec l’aide du découpage en tranches (slicing), nous pouvons diviser les tableaux en différents morceaux.
Même pour découper les tableaux, nous allons utiliser les valeurs d’index des éléments.
Un exemple de code suffira à te faire comprendre le découpage/slicing.
arr4 = np.arange(10) arr4 # OUTPUT: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
Nous avons créé un tableau de 10 éléments. Supposons que je veuille la tranche [4, 5, 6, 7] de ce tableau. Je ferais alors quelque chose comme :
arr4[4: 8] # OUTPUT: array([4, 5, 6, 7])
À l’intérieur des crochets, nous devons spécifier :
[start : stop : step]
Voici un exemple :
arr4[1: 10: 2] # OUTPUT: array([1, 3, 5, 7, 9])
*Note : Si tu indiques 10 comme valeur d’arrêt, il n’y aura que 9 comme valeur d’arrêt. Si la valeur d’arrêt est 9, le nombre d’éléments pris en compte ne dépassera pas 8.*
La valeur d’étape 2 permet de sauter le deuxième élément.
Exercice : Essaye un autre ensemble de valeurs
[start : stop : step]
et fais une tranche/slice.
Voyons comment fonctionne le découpage dans un tableau 2D :
np.random.seed(67) arr5 = np.random.randint(1, 10, (3, 4)) arr5 """ OUTPUT: array([[4, 6, 6, 8], [4, 7, 4, 8], [9, 6, 4, 7]]) """
Si je veux la ligne du milieu [4, 7, 4, 8] de ce tableau 2D, je ferai quelque chose comme :
arr5[1:2] # OUTPUT: array([[4, 7, 4, 8]])
Supposons que je veuille récupérer les 4 éléments de couleur rouge dans le tableau.
index | 0 | 1 | 2 | 3 |
---|---|---|---|---|
0 | 4 | 6 | 6 | 8 |
1 | 4 | 7 | 4 | 8 |
2 | 9 | 6 | 4 | 7 |
arr5[0:2, 1:3] """ OUTPUT: array([[6, 6], [7, 4]]) """
[0:2] me donne les 2 premières lignes.
[1:3] me donne les deux colonnes du milieu.
Utilisons l’indexation négative (ou indexation inverse) et découpons les deux colonnes du milieu.
index | 0 ou -4 | 1 ou -3 | 2 ou -2 | 3 ou -1 |
---|---|---|---|---|
0 or -3 | 4 | 6 | 6 | 8 |
1 or -2 | 4 | 7 | 4 | 8 |
2 or -1 | 9 | 6 | 4 | 7 |
arr5[-3:, 1:-1] """ OUTPUT: array([[6, 6], [7, 4], [6, 4]]) """
[-3 :] – Si tu ne spécifies rien après ( :
), cela signifie que toutes les lignes à partir de -3 seront récupérées.
[1 : -1] – Ici, nous utilisons à la fois l’indexation normale et l’indexation inversée. Nous commençons par le premier index jusqu’au dernier index qui est -1.
Ne t’y trompe pas. C’est très simple.
Hé, attends.
Es-tu en train de coder chez toi ?
Si tu codes et essaye différents exemples de code par toi-même, tu seras en mesure de comprendre ces concepts avec facilité.
Voici un exercice pour toi.
arr6 = np.random.randint(1, 10, (2, 3, 4)) arr6 """ OUTPUT: array([[[5, 8, 2, 4], [8, 9, 8, 3], [6, 6, 4, 3]], [[7, 7, 5, 9], [4, 2, 5, 9], [3, 8, 1, 8]]]) """
Exercice : Exploite ta curiosité et découpe le tableau 3D ci-dessus en différents morceaux.
Chapitre suivant 👉 Remodelage de tableaux NumPy.