在資料操作領域,通常需要對多維數組執行複雜的操作。一個這樣的場景涉及根據提供的移位值獨立滾動矩陣的行。
給定一個輸入矩陣 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中文網其他相關文章!