'ax = 1'옵션과 함께 np.unique와 동일한 값을 얻으려고합니다.numpy를 사용하여 행마다 고유 한 값 ~ 고유 값 얻기
a = np.array([[8, 8, 8, 5, 8],
[8, 2, 0, 8, 8],
[4, 5, 4, 2, 4],
[4, 6, 5, 2, 6]])
각 행에서 가장 많은 수의 값을 가져 와서 1D 벡터에 저장하려고합니다. 기본적으로 "각 행에서 가장 많이 볼 수있는 값입니다."
정답 :이 예에서는 [8,8,4,6]입니다. 행 수천 이상 반복 할 때 원하는 결과를 제공하지만, 파이썬에서 매우 느립니다
y = np.zeros(len(a))
for i in xrange(len(a)):
[u,cnt] = np.unique(a[i,:],return_counts=True)
# pick the value from 'u' that is seen the most.
y[i] = u[np.argmax(cnt)]
:
는 지금은 뭔가를하고 있어요. 나는 완전히 벡터화 된 접근법을 찾고있다.
나는 unique row elements 게시물을 찾았지만, 그것은 아주 내가 원하는 걸하지 않습니다 (그리고 하나 내가 원하는 형태로 그것을로 찾으면 정도로 아주 똑똑하지 않다거나 직접 적용 할 수 없습니다.)
가 당신을 감사 제공 할 수있는 도움을 얻기 위해 사전에 준비하십시오.
고유 한 방식으로 원하는대로 벡터화 할 수 없습니다. 행마다 다른 수의 unqiue 요소가있을 수 있으므로 반환 값은 NumPy의 옵션이 아닌 비정형 배열이어야합니다. – Jaime