ホームページ  >  記事  >  バックエンド開発  >  NumPy 配列内の高値要素を効率的に置き換える方法は?

NumPy 配列内の高値要素を効率的に置き換える方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-25 07:47:28774ブラウズ

How to Efficiently Replace High-Value Elements in NumPy Arrays?

NumPy 配列内の高値要素の効率的な置換

問題:

2 次元 NumPy 配列では、しきい値 (例: T = 255) より大きい値を特定の値 (例: x = 255) に置き換えたい。従来のアプローチには、時間のかかる for ループが含まれます。

解決策:

NumPy は、明示的なループの必要性を排除する簡潔で効率的なソリューションを提供します。 Fancy インデックスを活用すると、置換操作を簡単に実行できます。

<code class="python">arr[arr > 255] = x</code>

この 1 行のコードは、条件 (> 255) を満たす配列内のすべての要素を指定された値 (x) に置き換えます。

パフォーマンス:

Fancy インデックス作成アプローチは、タイミング測定で実証されているように、for ループ手法よりも大幅に高速です。 500 x 500 のランダム行列の場合、Fancy インデックスを使用すると、0.5 より大きい値を 5 に置き換えるのに平均 7.59 ミリ秒かかります:

<code class="python">import numpy as np
A = np.random.rand(500, 500)
%timeit A[A > 0.5] = 5</code>

利点:

  • 簡潔さ: Fancy インデックス作成ソリューションは非常に簡潔で、必要なコードは 1 行だけです。
  • 効率: for ループ アプローチよりも大幅に高速です。
  • 明確さ: 構文は単純で理解しやすいです。

以上がNumPy 配列内の高値要素を効率的に置き換える方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。