>  기사  >  백엔드 개발  >  `np.ix_`는 어떻게 다차원 NumPy 배열에서 인덱스 선택과 할당을 단순화할 수 있나요?

`np.ix_`는 어떻게 다차원 NumPy 배열에서 인덱스 선택과 할당을 단순화할 수 있나요?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-26 19:38:021071검색

How can `np.ix_` simplify index selection and assignment in multidimensional NumPy arrays?

np.ix_를 사용하여 인덱스 선택 또는 할당을 위한 인덱싱 배열 및 부울 마스크

np.ix_를 사용하면 다차원 NumPy 배열에서 선택 또는 할당 조작을 단순화할 수 있습니다. 작동 방식은 다음과 같습니다.

1. 인덱싱 배열 사용

A. Selection

np.ix_를 사용하면 인덱싱 배열을 고차원 조합으로 그룹화하여 다차원 배열을 인덱싱할 수 있습니다. 두 개의 1D 인덱싱 배열(예: row_indices 및 col_indices)을 사용하여 선택하려면 다음을 사용하세요.

<code class="python">x_indexed = x[np.ix_(row_indices, col_indices)]</code>

이는 외부 인덱싱 배열(예: row_indices)이 내부 인덱싱 배열에 대해 브로드캐스팅되는 중첩 버전과 동일합니다. 인덱싱 배열(col_indices):

<code class="python">x_indexed = x[np.asarray(row_indices)[:,None], col_indices]</code>

B. 할당

마찬가지로 np.ix_로 생성된 인덱싱 배열 튜플을 사용하면 스칼라 할당이나 데이터 블록 브로드캐스팅을 직접 수행할 수 있습니다.

<code class="python">x[np.ix_(row_indices, col_indices)] = scalar # assign a scalar
x[np.ix_(row_indices, col_indices)] = block  # assign a broadcastable block</code>

2. 부울 마스크 사용

np.ix_는 부울 마스크와도 작동합니다:

A. 선택

부울 마스크(row_mask 및 col_mask)를 사용하여 데이터 블록을 선택하려면 다음을 사용합니다.

<code class="python">x[np.ix_(row_mask, col_mask)]</code>

B. 과제

부울 마스크가 있는 과제의 경우 다음을 사용하세요.

<code class="python">x[np.ix_(row_mask, col_mask)] = scalar # assign a scalar
x[np.ix_(row_mask, col_mask)] = block  # assign a broadcastable block</code>

위 내용은 `np.ix_`는 어떻게 다차원 NumPy 배열에서 인덱스 선택과 할당을 단순화할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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