[ Python ] numpy를 사용하지 않고 argmax나 argmin을 할 수 있을까?
2019. 5. 12. 22:10ㆍ분석 Python/구현 및 자료
해당 작업은 어디 글을 보다가 궁금하게 되서 진행을 하게되었다
만약 우리가 numpy가 없다면.......... argmin, argmax는 어떻게 해야 할까?!
항상 보면 가장 작은 값 가장 큰 값을 뽑기 위해서 list를 numpy로 바꾸고 하긴 했었다.
그러면 이제 numpy를 안쓰고 해보자.
argmax 경우
output = [0.1,0.25, 0.3 ,0.2 ,0.1,0.05]
f = lambda i: output[i]
max(range(len(output)), key=f)
argmin 경우
min(range(len(output)), key=f)
그렇다면 만약 최대 2개를 찾고 싶으면?
- 해봤는데 코드가 좀 복잡해져서 Numpy의 소중함을 알게 됬다....
output = [0.1,0.25, 0.3 ,0.2 ,0.1,0.05]
f = lambda i: output[i]
first = max(range(len(output)), key=f)
idx = [(i,output[first] - j) for i,j in enumerate(output) if output[first] - j > 0.0 ]
a = []
b = []
for i , j in idx :
a.append(i)
b.append(j)
f = lambda i: b[i]
second = min( range(len(a)) , key=f)
print(first , second)
print(output[first] , output[second])
다음과 같이 진행하였다.
loop를 몇번이나 쓰는건지....
끝
728x90
'분석 Python > 구현 및 자료' 카테고리의 다른 글
[ Python ] UMAP (Uniform Manifold Approximation and Projection) (0) | 2019.05.22 |
---|---|
[ Python ] xml 파일 형식에서 원하는 부분 빼서 사용해보기 (0) | 2019.05.16 |
[변수 생성] 시간 데이터에서 어떤 변수를 새로 만들 수 있을까? (0) | 2019.05.06 |
[ Python ] 특정 조건을 만족하는 List 문자열만 뽑기 (0) | 2019.05.04 |
[ Python ] 중복 되는 배열 해결 하기 (0) | 2019.05.03 |