Maison > développement back-end > Tutoriel Python > Comment `np.ix_` peut-il simplifier la sélection et l'affectation d'index dans les tableaux NumPy multidimensionnels ?

Comment `np.ix_` peut-il simplifier la sélection et l'affectation d'index dans les tableaux NumPy multidimensionnels ?

Mary-Kate Olsen
Libérer: 2024-10-26 19:38:02
original
1140 Les gens l'ont consulté

How can `np.ix_` simplify index selection and assignment in multidimensional NumPy arrays?

Tableaux d'indexation et masques booléens pour la sélection ou l'affectation d'index à l'aide de np.ix_

La manipulation des sélections ou des affectations dans des tableaux NumPy multidimensionnels peut être simplifiée à l'aide de np.ix_. Voici comment cela fonctionne :

1. Utilisation de tableaux d'indexation

A. Selection

np.ix_ vous permet de regrouper des tableaux d'indexation en combinaisons de dimensions supérieures pour indexer des tableaux multidimensionnels. Pour effectuer une sélection à l'aide de deux tableaux d'indexation 1D (par exemple, row_indices et col_indices), utilisez :

<code class="python">x_indexed = x[np.ix_(row_indices, col_indices)]</code>
Copier après la connexion

Cela équivaut à une version imbriquée où le tableau d'indexation externe (par exemple, row_indices) est diffusé sur le tableau d'indexation interne. tableau d'indexation (col_indices) :

<code class="python">x_indexed = x[np.asarray(row_indices)[:,None], col_indices]</code>
Copier après la connexion

B. Assignation

De même, en utilisant le tuple de tableaux d'indexation créé par np.ix_, les affectations scalaires ou la diffusion d'un bloc de données peuvent être effectuées directement :

<code class="python">x[np.ix_(row_indices, col_indices)] = scalar # assign a scalar
x[np.ix_(row_indices, col_indices)] = block  # assign a broadcastable block</code>
Copier après la connexion

2. Utiliser des masques booléens

np.ix_ fonctionne également avec des masques booléens :

A. Sélection

Pour sélectionner un bloc de données à l'aide de masques booléens (row_mask et col_mask), utilisez :

<code class="python">x[np.ix_(row_mask, col_mask)]</code>
Copier après la connexion

B. Devoir

Pour les devoirs avec des masques booléens, utilisez :

<code class="python">x[np.ix_(row_mask, col_mask)] = scalar # assign a scalar
x[np.ix_(row_mask, col_mask)] = block  # assign a broadcastable block</code>
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