달나라 노트

Python numpy : log, log2, log10 (python log 함수, python ln, 자연로그, numpy.log, numpy.log2, numpy.log10) 본문

Python/Python numpy

Python numpy : log, log2, log10 (python log 함수, python ln, 자연로그, numpy.log, numpy.log2, numpy.log10)

CosmosProject 2022. 1. 15. 23:36
728x90
반응형

 

 

numpy에서는 log함수를 지원합니다.

기본적으로 다음과 같이 3가지가 있습니다.

 

numpy.log() = 밑이 e(자연 상수)인 log

numpy.log2() = 밑이 2인 log

numpy.log10() = 밑이 10인 log

 

 

import numpy as np

result = np.log(np.e)
print(result)

result = np.log2(2)
print(result)

result = np.log10(10)
print(result)


-- Result
1.0
1.0
1.0

numpy의 log method는 위처럼 사용할 수 있습니다.

log method의 괄호 안에 log를 적용할 값을 넣어주면 되는것이죠.

 

 

 

import numpy as np

arr_test = np.array([1, 2, 3, 4, 5])

result = np.log(arr_test)
print(result)

result = np.log2(arr_test)
print(result)

result = np.log10(arr_test)
print(result)


-- Result
[0.         0.69314718 1.09861229 1.38629436 1.60943791]
[0.         1.         1.5849625  2.         2.32192809]
[0.         0.30103    0.47712125 0.60205999 0.69897   ]

log method에는 단순히 어떤 하나의 값이 아니라 array도 전달할 수 있습니다.

log method에 array를 전달하면 array에 존재하는 모든 요소의 값에 log를 적용한 값을 array로 return해줍니다.

 

 

 

 

 

 

numpy에서는 위처럼 밑이 e, 2, 10인 log method를 지원하는데 log의 밑을 내가 원하는 숫자로 직접적으로 변경할 수 있는 method는 없습니다.

따라서 log의 밑을 내가 원하는 숫자로 설정하려면 log의 성질을 이용해야 합니다.

 

이용할 log의 성질은 위와 같습니다.

밑이 같은 log를 서로 나누면,

분모에 있는 log의 A는 새로운 log의 밑이 되고

분자에 있는 log의 B는 새로운 log의 log값이 되는거죠.

 

 

import numpy as np

result = np.log(9) / np.log(3)
print(result)


-- Result
2.0

위 예시를 보면 계산 과정이 아래와 같습니다.

마치 밑이 3인 log를 9라는 숫자에 적용한 것과 동일한 효과이죠.

 

 

 

 

import numpy as np

arr_test = np.array([1, 3, 9, 20, 27])

result = np.log(arr_test) / np.log(3)
print(result)


-- Result
[0.         1.         2.         2.72683303 3.        ]

마찬가지로 위처럼 array에 log를 씌울 수 있으며

그럴 경우 array에 존재하는 각각의 값에 대해 log를 적용하게 됩니다.

 

 

 

 

 

 

728x90
반응형
Comments