Maison > développement back-end > Tutoriel Python > Comment accéder aux éléments d'un tableau dans NumPy à l'aide des indices d'un autre tableau ?

Comment accéder aux éléments d'un tableau dans NumPy à l'aide des indices d'un autre tableau ?

Susan Sarandon
Libérer: 2024-11-11 02:03:02
original
742 Les gens l'ont consulté

How to Access Array Elements in NumPy Using Indices from Another Array?

Accès aux éléments d'un tableau à l'aide des indices de tableau dans NumPy

Les fonctions indexées de NumPy fournissent de puissantes techniques de manipulation de données, y compris la possibilité de sélectionner des éléments dans un tableau en utilisant des indices spécifiés par un autre tableau. Pour y parvenir :

Approche 1 : Utilisation de l'indexation avancée

A[np.arange(A.shape[0])[:,None] ,B]<br>

Ce code exploite l'indexation avancée, où np.arange(A.shape[0])[:,None] crée un vecteur de colonne avec des indices pour chaque ligne de A. La combinaison de cela avec B permet d'indexer A le long des lignes et des colonnes.

Approche 2 : Indexation linéaire

m,n = A.shape<br>np.take(A,B n*np.arange(m)[:,None])<br>

Cette approche utilise l'indexation linéaire, où chaque élément en A est adressé par un seul index. Il calcule d'abord un index linéaire en ajoutant la ligne correspondante de B à une séquence linéaire générée à l'aide de np.arange. Cet index linéaire est ensuite utilisé pour récupérer des éléments de A.

Exemple d'utilisation :

Matrice donnée A :

array([[ 2, 4, 5, 3],
       [ 1, 6, 8, 9],
       [ 8, 7, 0, 2]])
Copier après la connexion

Et matrice d'index B :

array([[0, 0, 1, 2],
       [0, 3, 2, 1],
       [3, 2, 1, 0]])
Copier après la connexion

L'application des approches donne le résultat souhaité :

array([[2, 2, 4, 5],
       [1, 9, 8, 6],
       [2, 0, 7, 8]])
Copier après la connexion

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