一、np.percentile函數
在數據分析中,我們常常需要了解數據的分布情況,知道數據在何種程度上佔比較高或較低,np.percentile()函數就能夠幫助我們實現這一需求。
np.percentile(a, q, axis=None, out=None)
其中,a表示需要計算的數據,q表示求解的分位數,axis表示需要計算的數據的軸向,out表示可選參數。
二、np.percentile函數用法
np.percentile函數主要用於計算數據在不同百分位數的值,例如,想知道一組數據在90%的百分位數處的值,就可以這樣寫:
import numpy as np
data=np.array([1,2,3,4,5,6,7,8,9,10])
np.percentile(data,90)
輸出結果為9.1。
需要注意的是,np.percentile函數中的q參數是一個數組,即可以計算多個分位數,並返回對應結果:
np.percentile(data, [20, 50, 80])
輸出結果為array([2.8, 5.5, 8.2])。
三、np.percentile 計算原理
要理解np.percentile函數的計算原理,需要先了解「分位數」的概念,分位數是指將所有數按大小順序排序後,按照百分數的大小,將其分為100份,每份的數據量即為1%。其中,中位數就是50%的分位數。
np.percentile函數在計算分位數時,採用向下取整的方式計算。例如,計算數據在50%百分位數上的值,如果總數據數量為n,那麼就找到排序後位置為n/2的數據,這就是50%分位數。
四、np.percentile函數怎麼用
np.percentile函數可以應用於各種數據分析的場景,例如,可以用於計算數據集的平均數、中位數、眾數、四分位數等。在金融、醫療等領域,也可用於分析數據分布,評估數據提取效率。
五、np.percentile()函數超詳解
np.percentile函數功能強大,具有很多可選參數:
- axis參數表示對數據的哪個維度進行計算,默認值為None,表示計算整個數據的分位數;
- out參數表示計算結果輸出的位置,默認值為None,表示直接返回結果;
- interpolation參數表示計算分位數時使用的插值方式,默認為linear(線性插值),還可以選擇lower(向下取整)、higher(向上取整)、nearest(離值最近的整數)的插值方法。
舉個例子,計算一個3D張量數據的80%分位數:
data=np.random.rand(4,5,6)
np.percentile(data,80,axis=(0,1))
輸出結果為一個長度為6的向量。
六、np.percentile函數超詳解
在圖像處理中,np.percentile函數也有很好的應用,可以實現多種圖像處理的功能,例如對圖像的亮度調整、圖像的對比度增強等。下面舉一個圖像亮度調整的例子:
import matplotlib.pyplot as plt
import skimage.data
image=skimage.data.astronaut()
p3, p97 = np.percentile(image, (3, 97))
image_rescale = exposure.rescale_intensity(image, in_range=(p3, p97))
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(8, 5), sharex=True, sharey=True)
ax = axes.ravel()
ax[0].imshow(image, cmap='gray')
ax[0].set_title('Before')
ax[1].imshow(image_rescale, cmap='gray')
ax[1].set_title('After')
fig.tight_layout()
plt.show()
上面的代碼將一張宇航員照片進行了亮度調整,輸出結果為一個子圖,左邊為原圖,右邊為調整後的圖。
七、np.percentile函數語法
總體來說,np.percentile函數的語法簡單而又靈活。
np.percentile(a, q, axis=None, out=None)
在使用時需要確定好計算的數據、需要計算的分位數、計算的軸向、輸出結果的位置等參數,具體使用可以根據自己的需求靈活選擇。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/152745.html