이전 답변
은 다소 혼란 스럽습니다. 귀하의 진술이 사실 인 위치 (모두)를 제공합니다.
그래서:
>>> a = np.arange(100)
>>> np.where(a > 30)
(array([31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
99]),)
>>> np.where(a == 90)
(array([90]),)
a = a*40
>>> np.where(a > 1000)
(array([26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
94, 95, 96, 97, 98, 99]),)
>>> a[25]
1000
>>> a[26]
1040
list.index ()의 대안으로 사용하지만 다른 용도도 많이 있습니다. 2D 배열과 함께 사용한 적이 없습니다.
http://docs.scipy.org/doc/numpy/reference/generated/numpy.where.html
New Answer
그 사람은 좀 더 근본적인 것을 묻고있는 것 같습니다.
질문은 함수 (예 : 어디서)가 요청 된 내용을 알 수있는 무언가를 구현할 수있는 방법이었습니다.
먼저 비교 연산자를 호출하면 흥미로운 일이 발생합니다.
a > 1000
array([False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True`, True, True, True, True, True, True, True, True, True], dtype=bool)`
이것은 "__gt__"메소드를 오버로딩함으로써 수행됩니다. 예를 들면 :
>>> class demo(object):
def __gt__(self, item):
print item
>>> a = demo()
>>> a > 4
4
보시다시피 "a> 4"는 유효한 코드였습니다.
여기에서 오버로드 된 모든 함수의 전체 목록과 문서를 얻을 수 있습니다. http://docs.python.org/reference/datamodel.html
놀라운 것은이 작업을 수행하는 것이 얼마나 간단한 지입니다. 파이썬의 모든 작업은 이러한 방식으로 수행됩니다. a> b는 a와 동일합니다. gt (b)!
numpy.where
처음 2 '작동 모드', 하나 개의 반환을해야합니까indices
,condition is True
및 선택적 매개 변수 경우x
와y
(동일 모양 존재condition
, 그것은에서 값을 반환합니다, 또는 모양 캐스트 가능한!)를x
할 때condition is True
, 그렇지 않으면에서y
. 따라서 이것은where
더 다양 하게 만들고 더 자주 사용할 수 있습니다. 감사합니다