>  기사  >  백엔드 개발  >  고급 인덱싱을 사용하여 행렬 행을 독립적으로 롤링하는 방법은 무엇입니까?

고급 인덱싱을 사용하여 행렬 행을 독립적으로 롤링하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-21 14:11:30674검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.