如何使用進階索引獨立滾動矩陣行?

Susan Sarandon
發布: 2024-10-21 14:11:30
原創
672 人瀏覽過

How to Roll Matrix Rows Independently Using Advanced Indexing?

使用高階索引獨立滾動矩陣行

在資料操作領域,通常需要對多維數組執行複雜的操作。一個這樣的場景涉及根據提供的移位值獨立滾動矩陣的行。

給定一個輸入矩陣 A 和一組移位值 r,任務是將滾動操作應用於 A 的每一行使用 r 的相應移位。期望的結果是:

[[0 0 4]
 [1 2 3]
 [0 5 0]]
登入後複製

高級索引為這項挑戰提供了一個優雅的解決方案。透過利用負移位值和進階陣列切片技術,您可以有效地實現滾動操作,如下所示:

<code class="python">rows, column_indices = np.ogrid[:A.shape[0], :A.shape[1]]

# Always use a negative shift, so that column_indices are valid.
# Alternative: r %= A.shape[1]
r[r < 0] += A.shape[1]
column_indices = column_indices - r[:, np.newaxis]

result = A[rows, column_indices]</code>
登入後複製

在這種方法中,ogrid 產生與A 的行和列相對應的索引網格。根據負移位值操縱列索引,捲動操作有效地應用於每一行。此方法為獨立滾動矩陣行提供了一個高效的解決方案,避免了循環的需要。

以上是如何使用進階索引獨立滾動矩陣行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!