list의 index()와 동일한 기능을 하는 NumPy array 함수를 찾고 있습니다


발생하는 문제 및 실행환경

보통 파이썬 리스트에서는

l = list(1,2,3)
l.index(2)

이렇게 index(x)를 써서 아이템 x의 위치를 알아내는데 이 기능을 NumPy array에서 못찾고 있습니다


조회수 345


1 답변


좋아요
0
싫어요
채택취소하기

numpy에서는 numpy.where(condition[, x, y])를 씁니다.

결과로는 tuple자료형을 반환합니다.

import numpy

myarr = numpy.array([4,3,2,1,4,6,2], int)
arridx = numpy.where(myarr == 4)

numpy.where은 index랑 완전히 같지는 않습니다.

예를 들어 찾고자 하는 원소가 여러 개 있는 경우, index는 제일 첫 번째 index만 찾아주지만 numpy.where는 모든 원소의 index를 찾아줍니다.

mylist = [4,3,2,4,6,2]
listidx = mylist.index(4)
print(listidx) #0만 출력

import numpy

myarr = numpy.array([4,3,2,4,6,2], int)
arridx = numpy.where(myarr == 4)
print(arridx) #(array([0, 3]),) 출력

또 list/array를 2차원으로 설정하는 경우, 내장된 리스트의 원소를 찾을 때 index는 원소를 찾지 못합니다.

import numpy

myarr = numpy.array([[4,3,2],[4,6,2]], int)
arridx = numpy.where(myarr == 4)
print(arridx) #(array([0, 1]), array([0, 0])) 출력

mylist = [[4,3,2],[4,6,2]]
listidx = mylist.index(4) #4가 없기 때문에 ValueError
print(listidx)
  • 2016년 02월 12일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close