`np.ix_`를 사용하여 두 개의 인덱스 목록이 있는 2D NumPy 배열을 인덱싱하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-10-26 08:27:30
원래의
929명이 탐색했습니다.

How to Index a 2D NumPy Array with Two Lists of Indices Using `np.ix_`?

2개의 인덱스 목록으로 2D Numpy 배열 인덱싱

문제 설명

2D Numpy 배열 인덱싱 두 개의 개별 인덱스 목록은 단일 인덱스 목록을 사용하는 것만큼 간단하지 않습니다. 원하는 인덱스 선택을 달성하려면 배열을 브로드캐스팅하고 재형성해야 하기 때문에 대규모 배열을 처리할 때 이는 어려울 수 있습니다.

np.ix_ 및 브로드캐스팅

Numpy의 np.ix_ 함수를 사용하면 원하는 인덱싱 패턴을 달성하기 위해 서로 브로드캐스팅할 수 있는 인덱싱 배열의 튜플을 만들 수 있습니다. 이 접근 방식은 가독성을 유지하고 코드 최적화를 촉진합니다.

np.ix_를 사용하여 인덱싱을 수행하려면 다음 단계를 따르세요.

    행 및 열 인덱스와 함께 np.ix_를 사용하여 두 개의 브로드캐스팅 배열을 만듭니다. .
  1. 이 인덱싱 배열을 사용하여 원본 배열에서 원하는 행과 열을 선택하세요.

예제 코드

다음 코드는 인덱스 기반 선택에 np.ix_를 사용하는 방법을 보여줍니다.

<code class="python">import numpy as np

# Create indices
row_indices = [4, 2, 18, 16, 7, 19, 4]
col_indices = [1, 2]

# Create broadcasting arrays
index_tuples = np.ix_(row_indices, col_indices)

# Perform indexing
x_indexed = x[index_tuples]</code>
로그인 후 복사

출력 예

>>> x_indexed
array([[76, 56],
       [70, 47],
       [46, 95],
       [76, 56],
       [92, 46]])
로그인 후 복사
추가 고려 사항

대체 구문:np.ix_ 사용을 위한 대체 구문은 달리 지정하지 않는 한 : 연산자를 사용하여 축을 따라 모든 인덱스를 지정하는 것입니다.

방송:입력 배열의 축을 따라 브로드캐스트가 발생한다는 점에 유의하는 것이 중요합니다. 따라서 각 축의 인덱싱 배열 크기는 입력 배열의 해당 크기와 일치해야 합니다.

최적화:np.ix_ 및 브로드캐스팅을 사용한 인덱싱은 상당한 성능 이점을 제공할 수 있습니다. 인덱스를 반복하거나 부울 마스크를 사용하는 것과 비교됩니다. 이는 대규모 배열로 작업할 때 특히 유리합니다.

위 내용은 `np.ix_`를 사용하여 두 개의 인덱스 목록이 있는 2D NumPy 배열을 인덱싱하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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