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

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!