numpy 에서 ndarray 배열 이 특정 조건 에 맞 는 색인 방법 을 되 돌려 줍 니 다.
(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 에서 intersect 1d 함수 가 이러한 연산 을 할 수 있 지만 여전히 번 거 롭 습 니 다.지금 은 이런 방법 만 생각 할 수 있 습 니 다.어떤 고수 가 더 좋 은 방법 이 있 는 지 모 르 겠 습 니 다.여러분 이 함께 교류 하 시 는 것 을 환영 합 니 다.
이상 의 numpy 에서 ndarray 배열 이 특정 조건 에 부합 되 는 색인 방법 을 되 돌려 주 는 것 은 바로 작은 편집 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 께 참고 가 되 고 많은 응원 을 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
chainer의 connection을 괴롭히고 새로운 층을 만든다 (1)GPU GTX1070 우분투 14.04 chainer 1.14.0 chainer에서 최신 모델을 구현할 때는 links/connection이나 functions/connection을 괴롭힐 필요가 있다. 그래서 가장...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.