이 두 모델은 매우 유사하므로 하나는 다른 모델에서 작동해야합니다. 그렇다면 최대 누적량은 누적되지만 누적 금액은 누적되지 않는 이유는 무엇입니까?numpy.maximum은 누적되는데 numpy.argmax는 누적되지 않는 이유
EDIT : 자연스러운 후속 질문은 효율적인 argmax를 만드는 방법이 가장 비단뱀/수줍음 같은 방식으로 어떻게 축적 될까요? max
때문에
이 두 모델은 매우 유사하므로 하나는 다른 모델에서 작동해야합니다. 그렇다면 최대 누적량은 누적되지만 누적 금액은 누적되지 않는 이유는 무엇입니까?numpy.maximum은 누적되는데 numpy.argmax는 누적되지 않는 이유
EDIT : 자연스러운 후속 질문은 효율적인 argmax를 만드는 방법이 가장 비단뱀/수줍음 같은 방식으로 어떻게 축적 될까요? max
때문에
는 연관이지만, argmax
이되지 않습니다 :
max(a, max(b, c)) == max(max(a, b), c)
argmax(a, argmax(b, c)) != argmax(argmax(a, b), c)
확인. 나는 당신이 의미하는 것을 본다. .. 흠 ... 그것이이 ufuncs가 어떻게 작동하는지에 관해 몰랐다. .. – RAY
나의 마음에서,이 argmax가 쌓이는 길은 현재/최후가 무엇인지를 추적하는 것에 의해 쉽게 일할 수 있었다. ,하지만 당신은 "마지막 맥스"가 지금까지 최대 값 이었지만 argmax는 그렇지 않다는 차이가 있다는 것을 머리에 못을 박았습니다. – RAY
부수적으로,'np.argmax'는'np.max'와 함께 ufunc가 아닙니다. 'np.argmaximum'이 없다는 것은 더 철자가 맞습니다'<' – Eric
이 원하는 축적 argmax
의 종류인가?
샘플 배열 :
In [135]: a
Out[135]: array([4, 6, 5, 1, 4, 4, 2, 0, 8, 4])
당신이 이미 가지고 최대 :
In [136]: am=np.maximum.accumulate(a)
In [137]: am
Out[137]: array([4, 6, 6, 6, 6, 6, 6, 6, 8, 8], dtype=int32)
In [138]: a1=np.zeros_like(a)
가 am
이 뛰어 요소를 식별합니다. np.diff
은 일한 것 : ind
을 찾을 수의
In [139]: ind=np.nonzero(a==am)[0]
In [140]: ind
Out[140]: array([0, 1, 8], dtype=int32)
In [141]: a1[ind]=ind
In [142]: a1
Out[142]: array([0, 1, 0, 0, 0, 0, 0, 0, 8, 0])
In [143]: np.maximum.accumulate(a1)
Out[143]: array([0, 1, 1, 1, 1, 1, 1, 1, 8, 8], dtype=int32)
다른 방법 - am
In [149]: ind=np.nonzero(np.diff(am))
In [150]: ind = np.concatenate([[0],ind[0]+1])
In [151]: ind
Out[151]: array([0, 1, 8])
당신은'maximum.accumulate'에서 점프를 찾을 수있는 점프에 대한 찾고'argmax'을 만들 수를 정렬. – hpaulj