Maison > développement back-end > Tutoriel Python > Comment extraire des éléments d'un tableau multidimensionnel à l'aide de l'indexation de tableaux d'entiers dans NumPy ?

Comment extraire des éléments d'un tableau multidimensionnel à l'aide de l'indexation de tableaux d'entiers dans NumPy ?

Mary-Kate Olsen
Libérer: 2024-11-15 16:17:02
original
331 Les gens l'ont consulté

How to Extract Elements from a Multidimensional Array Using Integer Array Indexing in NumPy?

Extraction d'éléments à l'aide de l'indexation de tableaux d'entiers

Lorsque vous travaillez avec des tableaux multidimensionnels, il est souvent nécessaire d'extraire des éléments spécifiques en fonction d'indices. Dans NumPy, vous pouvez utiliser diverses techniques pour y parvenir. L'une de ces méthodes consiste à utiliser l'indexation de tableaux d'entiers.

Considérons l'exemple suivant :

A = np.array([[0,1], [2,3], [4,5]])
B = np.array([[1], [0], [1]])
Copier après la connexion

Notre objectif est de créer un nouveau tableau C qui contient des éléments de A où l'index de ligne pour chacun L'élément est donné par A.shape[0] et l'index de colonne est donné par la version effilée de B. En d'autres termes, C devrait être :

C = np.array([[1], [2], [5]])
Copier après la connexion

Une approche consiste à utiliser l'indexation de tableaux d'entiers comme suit :

A[np.arange(A.shape[0]),B.ravel()]
Copier après la connexion

Cette approche utilise la fonction arange pour générer une plage d'indices pour les lignes de A, puis la combine avec la version effilée de B pour créer les indices de colonne. Le résultat est un nouveau tableau contenant les éléments souhaités.

# Sample run
print(A)
print(B)
print(A[np.arange(A.shape[0]),B.ravel()])
Copier après la connexion

Sortie :

[[0 1]
 [2 3]
 [4 5]]
[[1]
 [0]
 [1]]
[1 2 5]
Copier après la connexion

Il est important de noter que si B est un tableau 1D ou un liste, vous pouvez ignorer l'opération d'aplatissement avec .ravel().

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal