簡體   English   中英

如何在python中提取95%的數據

[英]How to extract 95% data in python

給定一個數字數組,我想刪除異常值,同時保留95%的數據點總數。 例如range(0,100,1)將成為range(2,98,1)。

例如,如果數據類似於

[0.01,0.02,4,5,7,3,1,4,6,7,10000,10002] -> [4,5,7,3,1,4,6,7]

Python標准庫或Numpy中是否有用於此目的的函數?

聽起來您有興趣篩選出在中位數絕對偏差 (MAD)的95%以內的數據。

此數據集的MAD為2.5(而std偏差> 3000)。 我們可以使用它來過濾相距2個中間偏差以上的點(收集約95%)

import numpy as np

data = np.array([0.01,0.02,4,5,7,3,1,4,6,7,10000,10002])
deviations = 2

d = np.abs(data - np.median(data))
med_abs_dev = np.median(d)
s = d / med_abs_dev
filtered = data[s < deviations]
# [ 0.01  0.02  4.    5.    7.    3.    1.    4.    6.    7.  ]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM