두 개의 인덱스 목록을 사용하여 2D NumPy 배열을 효율적으로 인덱싱하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-10-27 04:54:02
원래의
321명이 탐색했습니다.

How to Efficiently Index a 2D NumPy Array Using Two Lists of Indices?

두 개의 인덱스 목록을 사용하여 2D NumPy 배열 인덱싱

목표는 제공된 두 개의 인덱스 목록(행 및 하나는 열용입니다. 원하는 결과는 지정된 인덱스를 기반으로 배열의 하위 집합을 효율적으로 얻는 것입니다.

np.ix_

활용

이를 달성하기 위해 다음을 활용할 수 있습니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!