Comment indexer efficacement des tableaux avec les techniques avancées de NumPy ?

Linda Hamilton
Libérer: 2024-11-16 15:51:03
original
846 Les gens l'ont consulté

How to Efficiently Index Arrays with Advanced NumPy Techniques?

Indexation de tableaux avec des techniques NumPy avancées

Dans divers scénarios de calcul, il devient nécessaire d'indexer un tableau en fonction des valeurs d'un autre. Prenons l'exemple où nous avons deux matrices : A avec des valeurs arbitraires et B contenant des indices. L'objectif est de sélectionner des valeurs dans A telles que déterminées par les indices dans B.

Pour y parvenir, NumPy propose différentes méthodes d'indexation :

1. Indexation avancée :

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

Cette approche d'indexation initialise un nouveau tableau à l'aide de np.arange pour créer un index de colonne pour chaque ligne. Ensuite, il utilise ces indices de ligne comme première dimension et les valeurs de B comme deuxième dimension pour extraire les valeurs de A.

2. Indexation linéaire :

m, n = A.shape
out = np.take(A, B + n * np.arange(m)[:, None])
Copier après la connexion

Vous pouvez également utiliser l'indexation linéaire, où m et n représentent la forme de A . Il utilise np.take pour sélectionner des éléments en fonction du tableau combiné B et des décalages d'index créés en multipliant n avec les indices de ligne de np.arange .

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