NumPy で高度なインデックス作成を使用して行列行の独立したローリングを実行するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-21 14:15:02
オリジナル
327 人が閲覧しました

How to Perform Independent Rolling of Matrix Rows Using Advanced Indexing in NumPy?

高度なインデックス作成を使用して行列行を個別にローリングする

行列 A と、各行のロール値を含む配列 r が与えられた場合、目標は次のとおりです。これらのロール値を使用して A の各行を個別にロールします。

これを達成するための最も効率的なアプローチは、NumPy の高度なインデックス作成を使用することです。この手法には、A の列にロール値を適用する新しいメッシュグリッドの構築が含まれます。実装方法は次のとおりです。

<code class="python">import numpy as np

# Define the matrix A and roll values r
A = np.array([[4, 0, 0],
              [1, 2, 3],
              [0, 0, 5]])
r = np.array([2, 0, -1])

# Create a meshgrid of rows and negative shifted columns
rows, column_indices = np.ogrid[:A.shape[0], :A.shape[1]]
r[r < 0] += A.shape[1]
column_indices = column_indices - r[:, np.newaxis]

# Use advanced indexing to apply the roll values
result = A[rows, column_indices]

# Print the result
print(result)</code>
ログイン後にコピー

この手法では、負にシフトされた列インデックスを使用して有効なインデックスを確保し、ロール値を適用します。メッシュグリッドを通過し、独立してローリングされた行列が生成されます。

以上がNumPy で高度なインデックス作成を使用して行列行の独立したローリングを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!