목표는 제공된 두 개의 인덱스 목록(행 및 하나는 열용입니다. 원하는 결과는 지정된 인덱스를 기반으로 배열의 하위 집합을 효율적으로 얻는 것입니다.
이를 달성하기 위해 다음을 활용할 수 있습니다. NumPy의 np.ix_ 함수. np.ix_는 브로드캐스팅에 사용할 수 있는 인덱싱 배열의 튜플을 생성합니다. 작동 방식은 다음과 같습니다.
선택:
<code class="python">x_indexed = x[np.ix_(row_indices, col_indices)]</code>
이렇게 하면 다음과 같은 튜플이 생성됩니다. row_indices 및 col_indices를 기반으로 배열 인덱싱. 이러한 배열을 브로드캐스팅하면 x에 대한 인덱스를 생성하고 원하는 하위 집합을 추출할 수 있습니다.
할당:
<code class="python">x[np.ix_(row_indices, col_indices)] = value</code>
이는 지정된 값을 x의 인덱스 위치에 할당합니다.
선택:
<code class="python">row_mask = np.array([True, False, False, True, False], dtype=bool) col_mask = np.array([False, True, True, False, False], dtype=bool) x_indexed = x[np.ix_(row_mask, col_mask)]</code>
여기에서는 부울 마스크(row_mask 및 col_mask)를 사용합니다. 선택할 행과 열을 정의합니다.
할당:
<code class="python">x[np.ix_(row_mask, col_mask)] = value</code>
이것은 x의 마스크된 위치에 값을 할당합니다.
< h3>샘플 실행
다음 배열 및 인덱스 목록을 고려하세요.
<code class="python">x = np.random.random_integers(0, 5, (20, 8)) row_indices = [4, 2, 18, 16, 7, 19, 4] col_indices = [1, 2]</code>
np.ix_를 사용하여 x에 대한 인덱스를 지정할 수 있습니다:
<code class="python">x_indexed = x[np.ix_(row_indices, col_indices)] print(x_indexed) # Output: # [[76 56] # [70 47] # [46 95] # [76 56] # [92 46]]</code>
이렇게 하면 제공된 인덱스를 기반으로 선택된 행과 열이 있는 배열의 원하는 하위 집합이 제공됩니다.
위 내용은 두 개의 인덱스 목록을 사용하여 2D NumPy 배열을 효율적으로 인덱싱하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!