Comment remplacer efficacement les éléments dépassant un seuil dans les tableaux NumPy ?

Linda Hamilton
Libérer: 2024-10-25 18:20:03
original
239 Les gens l'ont consulté

How to Efficiently Replace Elements Exceeding a Threshold in NumPy Arrays?

Remplacement des éléments dépassant un seuil dans les tableaux NumPy

Dans le domaine du traitement d'images et de la manipulation de données, il est souvent nécessaire de modifier des éléments spécifiques dans des tableaux multidimensionnels. Une de ces opérations consiste à remplacer toutes les valeurs dépassant un seuil prédéfini par une nouvelle valeur. La question suivante répond à cette exigence :

"J'ai un tableau NumPy 2D. Comment puis-je remplacer toutes les valeurs qu'il contient supérieures à un seuil T = 255 par une valeur x = 255 ?"

Une solution simple à ce problème consiste à parcourir les éléments du tableau, à comparer chacun d'entre eux au seuil et à mettre à jour ceux qui le dépassent. Bien que cette méthode soit fonctionnelle, elle peut être lente pour les grands tableaux en raison des boucles imbriquées.

Une approche plus efficace est proposée par l'indexation Fancy de NumPy. Cette méthode fournit un moyen concis de modifier des éléments en fonction d'une condition booléenne. En tirant parti de l'indexation Fancy, nous pouvons remplacer les éléments supérieurs à 255 par 255 comme suit :

<code class="python">arr[arr > 255] = x</code>
Copier après la connexion

Cette opération effectue une comparaison élément par élément entre les éléments du tableau et 255. Le tableau booléen résultant est ensuite utilisé pour sélectionner et mettre à jour les éléments correspondants dans le tableau. L'opérateur d'affectation remplace les éléments sélectionnés par la valeur spécifiée.

Les benchmarks indiquent la supériorité de l'indexation Fancy sur les méthodes traditionnelles de boucle for. Sur une matrice aléatoire de 500 x 500, le remplacement des valeurs supérieures à 0,5 par 5 à l'aide de l'indexation Fancy prend environ 7,59 millisecondes par boucle. Cette performance rapide en fait le choix privilégié pour de telles opérations.

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!