中求對數 Python中求對數方法總結

2021-10-16 08:08:28 字數 1520 閱讀 2108

python中math庫和python庫都具備求對數的函式。

import numpy as np

import math12

1. numpy庫

1.1 求以e、2、10為底的對數

函式 功能

np.log(x) 以e為底的對數(自然對數)

np.log10(x) 以10為底的對數

np.log2(x) 以2為底的對數

np.log1p(x) 等價於:np.log(x + 1)

備註:np.expm1(x) 等價於 np.exp(x) - 1,也是np.log1p(x)的逆運算。

1.2 求以任意數為底的對數

在numpy中以任意數為底的對數需要用到換底公式:

例如:以3為底,5的對數

**寫出來為:

[python] 純文字檢視

複製**

?1np.log(5)/np.log(3)

2. math庫

2.1 求以e、2、10為底的對數

與numpy中的用法完全一樣

函式 功能

math.log(x) 以e為底的對數(自然對數)

math.log10(x) 以10為底的對數

math.log2(x) 以2為底的對數

math.log1p(x) 等價於:math.log(x + 1),用於資料平滑

備註:math.expm1(x) 等價於 math.exp(x) - 1,也是math.log1p(x)的逆運算。

2.2 求以任意數為底的對數

[python] 純文字檢視

複製**?1

2math.log(x, n)其中n為底數

3. 區別

為什麼有了乙個math庫中求對數的方法,還要在numpy庫中內建一模一樣的函式?

原因:如果輸入為乙個列表:

[python] 純文字檢視

複製**?1

2math.log10([10, 100]) # 會報錯typeerror: must be real number, notlist

[python] 純文字檢視

複製**?1

2345

678np.log10([10, 100])[out]:array([1., 2.])np.log10([[10, 100], [1000, 10000]])[out]:array([[1., 2.],[3., 4.]])

求逆序對數目

設計乙個平均時間為o n logn o nlogn o nlog n 的演算法,在n 1 n 1000 n 1 n 1000 n 1 n 1 000 個元素的陣列中尋找逆序對數目 這裡介紹分治的思想,用歸併對陣列進行排序,在排序的過程中,即可順便將逆序對數目求出來 首先,不斷地二分這個陣列,直到最小...

求逆序對數目

題目描述 給定乙個序列 a1,a2,a na 1,a 2,a n a1 a2 an 如果存在 a i aj a i a j ai aj 且 i i j 那麼我們稱之為逆序對的,求逆序對的數目。輸入第一行為 n nn,表示序列長度,接下來的 n nn 行,第 i 1 i 1i 1 行表示序列中的第 i...

T T問題求位數(對數求位數)

t t這個很像乙個流淚的表情是不是!其實,它是t的t次方啦 當t比較大的時候t t會非常大,現在只要你求這個數一共有多少位就可以了。包括多組資料,每組資料為乙個整數 0 剛開始看這道題本來想用python,畢竟python的資料型別轉換起來 比較方便,用快速冪求出該數,並轉換為字串型別,在輸出字串 ...