一、什麼是中位數
中位數是指將一組數據從小到大排列後,位於中間位置的數。如果數據個數為奇數,則中位數為中間的那個數;如果數據個數為偶數,則中位數是中間兩個數的平均數。
二、Python中的np.median()函數
在Python中,如果要計算一組數據的中位數,可以使用numpy庫中的median()函數。
import numpy as np data = [1, 2, 3, 4, 5] median = np.median(data) print("中位數為:", median)
以上代碼中,我們首先導入了numpy庫,然後定義了一個列表data,其中包含了5個數據。接着使用np.median()函數來計算數據的中位數,並將結果保存到變量median中。最後將結果打印出來。
三、如何處理含有缺失值的數據
在實際應用中,我們經常遇到含有缺失值的數據。如果數據中含有缺失值,那麼直接使用np.median()函數計算中位數可能會出現錯誤。這時,我們可以使用pandas庫中的dropna()函數來刪除缺失值,然後再計算中位數。
import numpy as np import pandas as pd data = [1, 2, 3, np.nan, 5] df = pd.DataFrame(data) clean_data = df.dropna() median = np.median(clean_data) print("中位數為:", median)
以上代碼中,我們首先導入了pandas庫,並將含有缺失值的數據保存到一個DataFrame對象df中。然後使用df.dropna()函數刪除缺失值,得到一個不含缺失值的數據clean_data。最後使用np.median()函數計算clean_data的中位數,並將結果保存到變量median中。最後將結果打印出來。
四、如何處理含有異常值的數據
在實際應用中,我們還經常遇到含有異常值的數據。如果數據中含有異常值,那麼直接使用np.median()函數計算中位數可能會出現錯誤。這時,我們可以使用numpy庫中的percentile()函數來刪除異常值,然後再計算中位數。
import numpy as np data = [1, 2, 3, 100, 5] p25, p75 = np.percentile(data, [25, 75]) iqr = p75 - p25 outlier_min = p25 - 1.5*iqr outlier_max = p75 + 1.5*iqr clean_data = [] for d in data: if d >= outlier_min and d <= outlier_max: clean_data.append(d) median = np.median(clean_data) print("中位數為:", median)
以上代碼中,我們首先定義了一個列表data,其中包含了5個數據,其中包含一個異常值100。然後使用np.percentile()函數計算出數據的第25個和第75個百分位數,進而計算出四分位距(iqr)。接着根據四分位距,分別計算出異常值的下限和上限。然後遍歷所有數據,將在異常值範圍內的數據添加到新列表clean_data中。最後使用np.median()函數計算clean_data的中位數,並將結果保存到變量median中。最後將結果打印出來。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/150646.html