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
762 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!

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