Cours accéléré NumPy: principes de base des tableaux
Tableaux d’indexation / de découpage
L’indexation de tableaux fonctionne de manière très similaire à l’indexation et au découpage de listes, nous devons simplement être conscients de la dimensionnalité de nos données.
Par exemple, supposons que nous travaillions avec le tableau comme indiqué ci-dessous:
>>> x = np.arange(12).reshape((4,3))
>>> x
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])
Nous avons un 4 x 3 contenant 12 éléments au total. Pour accéder à un élément, nous devons le faire en utilisant un tuple. Donc, si nous voulions retourner une valeur dans notre tableau multidimensionnel, nous le ferions comme tel:
>>> # Return an entire axis
>>> x[0]
array([0, 1, 2])>>> # Return a specific element
>>> x[3][1]
10
Nous pouvons également l’utiliser pour modifier les valeurs de notre tableau.
Notez que si vous essayez de modifier la valeur en un type de données différent de votre tableau, vous pouvez rencontrer des problèmes! Notre flottant est converti en int lorsque nous essayons de modifier un tableau de type int.
>>> # Modify a value using a correct data type
>>> x[1][1] = 30
>>> x
array([[ 0, 1, 2],
[ 3, 30, 5],
[ 6, 7, 8],
[ 9, 10, 11]])>>> # Modify a value using an incorrect data type
>>> x[0][1] = 3.14
>>> x
array([[ 0, 3, 2],
[ 3, 30, 5],
[ 6, 7, 8],
[ 9, 10, 11]])
Pour le découpage, nous utilisons à nouveau la notation de découpage de liste familière, mais lorsque nous traitons des tableaux de plusieurs dimensions, vous séparez chaque dimension par une virgule.
Nous accédons aux lignes et colonnes en utilisant l’habituel X[start:stop:step] format.
>>> x
array([[ 0, 3, 2],
[ 3, 30, 5],
[ 6, 7, 8],
[ 9, 10, 11]])>>> # Return a slice of the first 2 rows and all columns
>>> x[:2, :]
array([[ 0, 3, 2],
[ 3, 30, 5]])>>> # Return a slice of all rows up to the first column
>>> x[:, :1]
array([[0],
[3],
[6],
[9]])>>> # Return every other row, every column
>>> x[::2, :]
array([[0, 3, 2],
[6, 7, 8]])