파이썬 특정 차원의 최대값의 순서를 갖고 올 수 있는 방법이 있을까요?
조회수 752회
numpy나, tf.array에서 특정 차원의 최대값의 순서 갖고 올 수 있는 방법이 있을까요?
쉽게 말씀드리면, pandas같은 곳에서 특정행의 최대값의 위치를 뽑는거죠.
마치 Keras model에서 마지막에 Softmax를 쓴 것 처럼요.
실제로도 Softmax를 썼어요.
[
[ 0, 0, 0, 2, 9, 4, 5, 5, 5, 5 ],
[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
]
이 경우, [4, 9]를 반환 하는거죠..
참고로 실제 값은 Softmax를 써서, 실수에요..
2 답변
-
numpy 에 argmax 가 있어요.
import numpy as np def main(): a = np.array([[0, 0, 0, 2, 9, 4, 5, 5, 5, 5], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]) amax = np.argmax(a, axis=1) print(amax) if __name__ == "__main__": main()
-
>>> a = [[ 0, 0, 0, 2, 9, 4, 5, 5, 5, 5 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]] >>> list(map(lambda x: x.index(max(x)), a)) [4, 9]
댓글 입력