網(wǎng)站模板開發(fā)主要作用免費(fèi)b站推廣網(wǎng)址有哪些
1?NumPy 統(tǒng)計(jì)函數(shù)
????????NumPy 提供了很多統(tǒng)計(jì)函數(shù),用于從數(shù)組中查找最小元素,最大元素,百分位標(biāo)準(zhǔn)差和方差等。
1.1?numpy.amin() 和 numpy.amax()
????????numpy.amin() 用于計(jì)算數(shù)組中的元素沿指定軸的最小值。
numpy.amin(a, axis=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)
a
: 輸入的數(shù)組,可以是一個(gè)NumPy數(shù)組或類似數(shù)組的對象。axis
: 可選參數(shù),用于指定在哪個(gè)軸上計(jì)算最小值。如果不提供此參數(shù),則返回整個(gè)數(shù)組的最小值。可以是一個(gè)整數(shù)表示軸的索引,也可以是一個(gè)元組表示多個(gè)軸。out
: 可選參數(shù),用于指定結(jié)果的存儲位置。keepdims
: 可選參數(shù),如果為True,將保持結(jié)果數(shù)組的維度數(shù)目與輸入數(shù)組相同。如果為False(默認(rèn)值),則會(huì)去除計(jì)算后維度為1的軸。initial
: 可選參數(shù),用于指定一個(gè)初始值,然后在數(shù)組的元素上計(jì)算最小值。where
: 可選參數(shù),一個(gè)布爾數(shù)組,用于指定僅考慮滿足條件的元素。
????????numpy.amax() 用于計(jì)算數(shù)組中的元素沿指定軸的最大值。
numpy.amax(a, axis=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)
a
: 輸入的數(shù)組,可以是一個(gè)NumPy數(shù)組或類似數(shù)組的對象。axis
: 可選參數(shù),用于指定在哪個(gè)軸上計(jì)算最大值。如果不提供此參數(shù),則返回整個(gè)數(shù)組的最大值。可以是一個(gè)整數(shù)表示軸的索引,也可以是一個(gè)元組表示多個(gè)軸。out
: 可選參數(shù),用于指定結(jié)果的存儲位置。keepdims
: 可選參數(shù),如果為True,將保持結(jié)果數(shù)組的維度數(shù)目與輸入數(shù)組相同。如果為False(默認(rèn)值),則會(huì)去除計(jì)算后維度為1的軸。initial
: 可選參數(shù),用于指定一個(gè)初始值,然后在數(shù)組的元素上計(jì)算最大值。where
: 可選參數(shù),一個(gè)布爾數(shù)組,用于指定僅考慮滿足條件的元素。
import numpy as npa = np.array([[3, 7, 5], [8, 4, 3], [2, 4, 9]])
print('我們的數(shù)組是:')
print(a)
print('\n')
print('調(diào)用 amin() 函數(shù):')
print(np.amin(a, 1))
print('\n')
print('再次調(diào)用 amin() 函數(shù):')
print(np.amin(a, 0))
print('\n')
print('調(diào)用 amax() 函數(shù):')
print(np.amax(a))
print('\n')
print('再次調(diào)用 amax() 函數(shù):')
print(np.amax(a, axis=0))
1.2?numpy.ptp()
????????numpy.ptp()?函數(shù)計(jì)算數(shù)組中元素最大值與最小值的差(最大值 - 最小值)。
numpy.ptp(a, axis=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)
a
: 輸入的數(shù)組,可以是一個(gè) NumPy 數(shù)組或類似數(shù)組的對象。axis
: 可選參數(shù),用于指定在哪個(gè)軸上計(jì)算峰-峰值。如果不提供此參數(shù),則返回整個(gè)數(shù)組的峰-峰值??梢允且粋€(gè)整數(shù)表示軸的索引,也可以是一個(gè)元組表示多個(gè)軸。out
: 可選參數(shù),用于指定結(jié)果的存儲位置。keepdims
: 可選參數(shù),如果為 True,將保持結(jié)果數(shù)組的維度數(shù)目與輸入數(shù)組相同。如果為 False(默認(rèn)值),則會(huì)去除計(jì)算后維度為1的軸。initial
: 可選參數(shù),用于指定一個(gè)初始值,然后在數(shù)組的元素上計(jì)算峰-峰值。where
: 可選參數(shù),一個(gè)布爾數(shù)組,用于指定僅考慮滿足條件的元素。
import numpy as npa = np.array([[3, 7, 5], [8, 4, 3], [2, 4, 9]])
print('我們的數(shù)組是:')
print(a)
print('\n')
print('調(diào)用 ptp() 函數(shù):')
print(np.ptp(a))
print('\n')
print('沿軸 1 調(diào)用 ptp() 函數(shù):')
print(np.ptp(a, axis=1))
print('\n')
print('沿軸 0 調(diào)用 ptp() 函數(shù):')
print(np.ptp(a, axis=0))
1.3?numpy.percentile()
????????百分位數(shù)是統(tǒng)計(jì)中使用的度量,表示小于這個(gè)值的觀察值的百分比。 函數(shù)numpy.percentile()接受以下參數(shù)。
numpy.percentile(a, q, axis)
- a: 輸入數(shù)組
- q: 要計(jì)算的百分位數(shù),在 0 ~ 100 之間
- axis: 沿著它計(jì)算百分位數(shù)的軸
????????第 p 個(gè)百分位數(shù)是這樣一個(gè)值,它使得至少有 p% 的數(shù)據(jù)項(xiàng)小于或等于這個(gè)值,且至少有 (100-p)% 的數(shù)據(jù)項(xiàng)大于或等于這個(gè)值。舉個(gè)例子:高等院校的入學(xué)考試成績經(jīng)常以百分位數(shù)的形式報(bào)告。比如,假設(shè)某個(gè)考生在入學(xué)考試中的語文部分的原始分?jǐn)?shù)為 54 分。相對于參加同一考試的其他學(xué)生來說,他的成績?nèi)绾尾⒉蝗菀字馈5侨绻挤謹(jǐn)?shù)54分恰好對應(yīng)的是第70百分位數(shù),我們就能知道大約70%的學(xué)生的考分比他低,而約30%的學(xué)生考分比他高。這里的 p = 70。
import numpy as npa = np.array([[10, 7, 4], [3, 2, 1]])
print('我們的數(shù)組是:')
print(a)print('調(diào)用 percentile() 函數(shù):')
# 50% 的分位數(shù),就是 a 里排序之后的中位數(shù)
print(np.percentile(a, 50))# axis 為 0,在縱列上求
print(np.percentile(a, 50, axis=0))# axis 為 1,在橫行上求
print(np.percentile(a, 50, axis=1))# 保持維度不變
print(np.percentile(a, 50, axis=1, keepdims=True))
1.4?numpy.median()
????????numpy.median() 函數(shù)用于計(jì)算數(shù)組 a 中元素的中位數(shù)(中值)
numpy.median(a, axis=None, out=None, overwrite_input=False, keepdims=<no value>)
a
: 輸入的數(shù)組,可以是一個(gè) NumPy 數(shù)組或類似數(shù)組的對象。axis
: 可選參數(shù),用于指定在哪個(gè)軸上計(jì)算中位數(shù)。如果不提供此參數(shù),則計(jì)算整個(gè)數(shù)組的中位數(shù)。可以是一個(gè)整數(shù)表示軸的索引,也可以是一個(gè)元組表示多個(gè)軸。out
: 可選參數(shù),用于指定結(jié)果的存儲位置。overwrite_input
: 可選參數(shù),如果為True,則允許在計(jì)算中使用輸入數(shù)組的內(nèi)存。這可能會(huì)在某些情況下提高性能,但可能會(huì)修改輸入數(shù)組的內(nèi)容。keepdims
: 可選參數(shù),如果為True,將保持結(jié)果數(shù)組的維度數(shù)目與輸入數(shù)組相同。如果為False(默認(rèn)值),則會(huì)去除計(jì)算后維度為1的軸。
import numpy as npa = np.array([[30, 65, 70], [80, 95, 10], [50, 90, 60]])
print('我們的數(shù)組是:')
print(a)
print('\n')
print('調(diào)用 median() 函數(shù):')
print(np.median(a))
print('\n')
print('沿軸 0 調(diào)用 median() 函數(shù):')
print(np.median(a, axis=0))
print('\n')
print('沿軸 1 調(diào)用 median() 函數(shù):')
print(np.median(a, axis=1))
1.5?numpy.mean()
????????numpy.mean() 函數(shù)返回?cái)?shù)組中元素的算術(shù)平均值,如果提供了軸,則沿其計(jì)算。算術(shù)平均值是沿軸的元素的總和除以元素的數(shù)量。
numpy.mean(a, axis=None, dtype=None, out=None, keepdims=<no value>)
a
: 輸入的數(shù)組,可以是一個(gè) NumPy 數(shù)組或類似數(shù)組的對象。axis
: 可選參數(shù),用于指定在哪個(gè)軸上計(jì)算平均值。如果不提供此參數(shù),則計(jì)算整個(gè)數(shù)組的平均值??梢允且粋€(gè)整數(shù)表示軸的索引,也可以是一個(gè)元組表示多個(gè)軸。dtype
: 可選參數(shù),用于指定輸出的數(shù)據(jù)類型。如果不提供,則根據(jù)輸入數(shù)據(jù)的類型選擇合適的數(shù)據(jù)類型。out
: 可選參數(shù),用于指定結(jié)果的存儲位置。keepdims
: 可選參數(shù),如果為True,將保持結(jié)果數(shù)組的維度數(shù)目與輸入數(shù)組相同。如果為False(默認(rèn)值),則會(huì)去除計(jì)算后維度為1的軸。
import numpy as npa = np.array([[1, 2, 3], [3, 4, 5], [4, 5, 6]])
print('我們的數(shù)組是:')
print(a)
print('\n')
print('調(diào)用 mean() 函數(shù):')
print(np.mean(a))
print('\n')
print('沿軸 0 調(diào)用 mean() 函數(shù):')
print(np.mean(a, axis=0))
print('\n')
print('沿軸 1 調(diào)用 mean() 函數(shù):')
print(np.mean(a, axis=1))
1.6?numpy.average()
????????numpy.average() 函數(shù)根據(jù)在另一個(gè)數(shù)組中給出的各自的權(quán)重計(jì)算數(shù)組中元素的加權(quán)平均值。該函數(shù)可以接受一個(gè)軸參數(shù)。 如果沒有指定軸,則數(shù)組會(huì)被展開。加權(quán)平均值即將各數(shù)值乘以相應(yīng)的權(quán)數(shù),然后加總求和得到總體值,再除以總的單位數(shù)??紤]數(shù)組[1,2,3,4]和相應(yīng)的權(quán)重[4,3,2,1],通過將相應(yīng)元素的乘積相加,并將和除以權(quán)重的和,來計(jì)算加權(quán)平均值。
加權(quán)平均值 = (1*4+2*3+3*2+4*1)/(4+3+2+1)
numpy.average(a, axis=None, weights=None, returned=False)
a
: 輸入的數(shù)組,可以是一個(gè) NumPy 數(shù)組或類似數(shù)組的對象。axis
: 可選參數(shù),用于指定在哪個(gè)軸上計(jì)算加權(quán)平均值。如果不提供此參數(shù),則計(jì)算整個(gè)數(shù)組的加權(quán)平均值。可以是一個(gè)整數(shù)表示軸的索引,也可以是一個(gè)元組表示多個(gè)軸。weights
: 可選參數(shù),用于指定對應(yīng)數(shù)據(jù)點(diǎn)的權(quán)重。如果不提供權(quán)重?cái)?shù)組,則默認(rèn)為等權(quán)重。returned
: 可選參數(shù),如果為True,將同時(shí)返回加權(quán)平均值和權(quán)重總和。
import numpy as npa = np.array([1, 2, 3, 4])
print('我們的數(shù)組是:')
print(a)
print('\n')
print('調(diào)用 average() 函數(shù):')
print(np.average(a))
print('\n')
# 不指定權(quán)重時(shí)相當(dāng)于 mean 函數(shù)
wts = np.array([4, 3, 2, 1])
print('再次調(diào)用 average() 函數(shù):')
print(np.average(a, weights=wts))
print('\n')
# 如果 returned 參數(shù)設(shè)為 true,則返回權(quán)重的和
print('權(quán)重的和:')
print(np.average([1, 2, 3, 4], weights=[4, 3, 2, 1], returned=True))
????????在多維數(shù)組中,可以指定用于計(jì)算的軸。
import numpy as npa = np.arange(6).reshape(3, 2)
print('我們的數(shù)組是:')
print(a)
print('\n')
print('修改后的數(shù)組:')
wt = np.array([3, 5])
print(np.average(a, axis=1, weights=wt))
print('\n')
print('修改后的數(shù)組:')
print(np.average(a, axis=1, weights=wt, returned=True))
1.7?標(biāo)準(zhǔn)差
????????標(biāo)準(zhǔn)差是一組數(shù)據(jù)平均值分散程度的一種度量,標(biāo)準(zhǔn)差是方差的算術(shù)平方根。公式如下:
std = sqrt(mean((x - x.mean())**2))
????????如果數(shù)組是 [1,2,3,4],則其平均值為 2.5。 因此,差的平方是 [2.25,0.25,0.25,2.25],并且再求其平均值的平方根除以 4,即 sqrt(5/4) ,結(jié)果為 1.1180339887498949。
import numpy as npprint(np.std([1, 2, 3, 4]))
1.8?方差
????????統(tǒng)計(jì)中的方差(樣本方差)是每個(gè)樣本值與全體樣本值的平均數(shù)之差的平方值的平均數(shù),即 mean((x - x.mean())** 2)。換句話說,標(biāo)準(zhǔn)差是方差的平方根。
import numpy as npprint(np.var([1, 2, 3, 4]))
?