Python >> Tutoriel Python >  >> Python Tag >> NumPy

Comment indexer les tableaux NumPy 1D ?

Numpy est une bibliothèque Python populaire pour la science des données axée sur les tableaux, les vecteurs et les matrices.

Formulation du problème : Étant donné un tableau NumPy unidimensionnel arr .

  • Comment accéder au i -ième valeur du tableau ?
  • Comment accéder à toutes les valeurs entre i -ième valeur (incluse) et le j -ième valeur (exclue) du tableau ?
  • Comment accéder à toutes les valeurs entre i -ième valeur (incluse) et le j -ième valeur (exclue) du tableau, en utilisant uniquement tous les k -ème élément (taille du pas) ?

Méthode 1 :Indexation – Accéder à la i-ième valeur

Pour accéder au i -ème valeur d'un tableau NumPy utilise la notation d'indexation entre crochets array[i] . Le premier élément a l'index 0, le deuxième élément a l'index 1 et le (i+1) -ème élément a l'index i .

import numpy as np

# The Fibonacci Series (1D Array)
arr = np.array([0, 1, 1, 2, 3, 5, 8])

# Access element with index i=2
print(arr[2])
# 1

# Access element with index i=5
print(arr[5])
# 5

# Access element with index i=0
print(arr[0])
# 0

Méthode 2 :Découpage :accès aux valeurs comprises entre i et j

Pour accéder à toutes les valeurs entre i -ième valeur (incluse) et le j -ième valeur (exclue) utiliser la notation de découpage entre crochets array[i:j] .

import numpy as np

# The Fibonacci Series (1D Array)
arr = np.array([0, 1, 1, 2, 3, 5, 8])

# Access slice between i=2 and j=5
print(arr[2:5])
# [1 2 3]

# Access slice between i=0 and j=5
print(arr[:5])
# [0 1 1 2 3]

# Access slice between i=2 and j=3
print(arr[2:3])
# [1]

Méthode 3 :Découpage avec taille de pas – Accès à chaque k-ième valeur entre i et j

Pour accéder à tous les k -ième valeur entre i -ème valeur (incluse) et le j -ième valeur (exclue) utiliser la notation de découpage entre crochets array[i:j:k] .

import numpy as np

# The Fibonacci Series (1D Array)
arr = np.array([0, 1, 1, 2, 3, 5, 8])

# Access slice between i=2 and j=5 using step k=2
print(arr[2:5:2])
# [1 3]

# Access slice between i=0 and j=5 using step k=3
print(arr[:5:3])
# [0 2]

# Access slice between i=5 and j=1 using step k=-1
print(arr[5:1:-1])
# [5 3 2 1]

NumPy Puzzle Indexing &Slicing 1D Array

Ce puzzle illustre l'indexation dans les tableaux NumPy. Vous connaissez probablement l'indexation des listes ou des chaînes Python. L'indexation pour numpy fonctionne de la même manière.

Il y a deux rebondissements intéressants dans ce puzzle. Tout d'abord, nous écrasons chaque troisième valeur du tableau avec l'expression concise F[::3] à partir de la toute première entrée. Deuxièmement, nous imprimons la somme des quatre premières valeurs. Comme nous venons d'écraser la première et la quatrième valeur, la somme n'est que de 2.

Quel est le résultat de ce puzzle ?
*Niveau Intermédiaire*


Êtes-vous un codeur maître?
Testez vos compétences maintenant !


Post précédent