나는 numpy 배열 (3628621 요소의 긴 벡터)의 고유 한 요소 색인을 얻으려고합니다.numpy.unique가 고유하지 않은 결과를 제공합니까?
Vector
Out[165]: array([712450, 714390, 718560, ..., 384390, 992041, 94852])
Loc = np.where(np.unique(Vector)) # Find indices of unique elements
Vector_New = Vector[Loc] # Create new vector with all unique elements
np.where(Vector_New == 173020) # See how often/where '173020' exists
Out[166]: (array([ 7098, 11581], dtype=int64),)
그래서, 정수 '173020'는 새로운 벡터에 두 번 계속 존재 내가 것으로 예상하지만, : 나는 여전히 중복을 발견하고 독특한 요소를 선택하려고 할 때 때문에 그러나, 나는 뭔가 잘못을 수행해야합니다 모든 요소는 고유해야합니다. 새로운 벡터는 11594 요소입니다.
도움 주셔서 감사합니다.
감사합니다, Timen
'np.where (np.unique (Vector)) '는'고유 요소 색인 찾기 '가 아닙니다. – user2357112
@ user2357112가 의미하는 것은'Vector_New = np.unique (Vector)'를 실제로하고 싶다는 것입니다. 당신이하고있는 일은'Loc = np.arange (np.unique (Vector) .size)'와 동등하지만,'Vector'에 색인을 붙이면 달성하려는 것에는 아무 것도 없습니다. –
그래, 왜 그렇게 생각했는지 모르겠다. 문제를 일으켜서 미안 해요! – Timen123