>  기사  >  백엔드 개발  >  특정 조건을 충족하는 인덱스 메서드를 반환하려면 numpy에서 ndarray 배열을 구현하세요.

특정 조건을 충족하는 인덱스 메서드를 반환하려면 numpy에서 ndarray 배열을 구현하세요.

不言
不言원래의
2018-04-17 10:46:575490검색

다음 기사에서는 특정 조건을 충족하는 인덱스 메서드를 반환하는 ndarray 배열을 구현하는 numpy의 기사를 공유할 예정이며, 이 기사가 모든 사람에게 도움이 되기를 바랍니다. 함께 살펴볼까요

ndarray 형태의 numpy에서는 특정 인덱스를 직접 반환하는 방법이 없는 것 같은데 where 함수만 찾았는데 특정 값에 해당하는 인덱스를 찾는 데는 where 함수가 매우 유용합니다. , 그리고 특정 범위를 반환하기 위해 값의 인덱싱은 그다지 효율적이지 않습니다. 적어도 제가 어떻게 해야 할지 알 수는 없습니다. 먼저 where 함수의 사용법에 대해 이야기하겠습니다.

(1) where 함수의 사용 시나리오:

예를 들어, 이제 배열을 생성합니다:

import numpy as np 
arr=np.array([1,1,1,134,45,3,46,45,65,3,23424,234,12,12,3,546,1,2])

이제 arr은 18개의 요소를 포함하는 ndarray 유형 배열이고, 배열을 사용하겠습니다. 나중에 그것이 무엇인지 부르자. 값이 3인 배열의 모든 요소에 해당하는 인덱스 위치를 반환하려면 where 함수를 통해 쉽게 수행할 수 있습니다.

print np.where(arr==3)

아래와 같이 값 3에 해당하는 모든 인덱스 위치를 포함하는 튜플을 반환합니다.

인덱스 5, 9, 14에 해당하는 요소 값을 볼 수 있습니다. 3. 이렇게 하면 쉽게 목표를 달성할 수 있습니다. 그러나 이는 특정 변경 범위 내의 인덱스에는 작동하지 않습니다. 다음 방법은 제가 생각해낸 절충안입니다. 상대적으로 어리석은 일이지만 마스터가 정리할 수 있습니다.

(2) 보조 배열을 사용하여 특정 범위 내의 값 인덱스 검색을 해결합니다

요소 인덱스를 식별하는 배열을 구축한 후 이를 사용하여 충족하는 요소에 해당하는 인덱스를 표시합니다. 조건. 이제 3에서 100 사이의 요소 값 인덱스를 반환하려는 경우에도 여전히 동일한 배열입니다. arr과 같은 크기의 배열을 생성한 후 먼저 한 번 필터링하여 3보다 큰 요소의 인덱스에 해당하는 배열을 찾은 다음 다시 필터링하면 최종적으로 원하는 결과를 얻을 수 있습니다. 코드는 다음과 같습니다.

b=np.arange(len(arr))#生成和arr相同长度的数组

c=b[arr>3]#c存放的就是arr中大于3的元素对应的索引 
#最后通过遍历c数组,选择3到100之间的值打印出来 
for i in range(len(c)): 
 if arr[c[i]]<100: 
  print c[i],

실행 효과를 살펴보겠습니다.

프로그램이 인덱스 값을 표시한 것을 볼 수 있습니다. ​3~100 사이의 모든 요소에 해당합니다. 인덱스 값과 해당 요소를 동시에 가져오려면 위의 "print c[i]"를 "print c[i],arr[ c[i]]".

물론, 이 방법은 특정 값에 해당하는 인덱스를 선택하는 데에도 적합합니다. 예를 들어 3개 모두에 해당하는 위치를 찾으려면 print b[arr==3]을 사용하여 다음을 인쇄할 수 있습니다. 값이 3인 모든 요소에 해당하는 위치. 인덱스. 실제로 어떻게 하든 배열을 사용하여 관계 연산을 수행하여 부울 배열을 생성한 다음 배열에서 True인 영역을 표시합니다.

물론 두 번 필터링하여 3보다 큰 요소와 100보다 작은 요소에 해당하는 인덱스 배열을 필터링한 다음 두 배열에 대해 교차 처리를 수행할 수도 있습니다. numpy에는 이러한 작업을 수행할 수 있는 intersect1d 함수가 있습니다. , 하지만 여전히 귀찮습니다. 지금은 이런 방법밖에 생각이 나지 않습니다. 더 나은 방법이 있는지는 잘 모르겠습니다. 누구나 공유할 수 있습니다.

관련 권장 사항:

관련 권장 사항:

python3 라이브러리에서 numpy 배열 속성을 보는 방법

Python에서 numpy와 배열을 변환하는 방법


위 내용은 특정 조건을 충족하는 인덱스 메서드를 반환하려면 numpy에서 ndarray 배열을 구현하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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