X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Ftools%2Fpresentation%2Futils.py;h=a56ee3e105536cf8a501453a4a7074fca4545e63;hb=c9d1aec367e6a6aa8cb0105d24eb828e4c9929b8;hp=f423cd22a79ac7ee0de6b12624d48f814c62e8e9;hpb=eecad36d7d2275fa47fbcab40dbcf56108ab0a51;p=csit.git diff --git a/resources/tools/presentation/utils.py b/resources/tools/presentation/utils.py index f423cd22a7..a56ee3e105 100644 --- a/resources/tools/presentation/utils.py +++ b/resources/tools/presentation/utils.py @@ -14,6 +14,8 @@ """General purpose utilities. """ +import numpy as np + from os import walk from os.path import join from math import sqrt @@ -57,7 +59,34 @@ def relative_change(nr1, nr2): :rtype: float """ - return (nr1 - nr2) / nr2 * 100 + return float(((nr2 - nr1) / nr1) * 100) + + +def remove_outliers(input_data, outlier_const): + """ + + :param input_data: Data from which the outliers will be removed. + :param outlier_const: Outlier constant. + :type input_data: list + :type outlier_const: float + :returns: The input list without outliers. + :rtype: list + """ + + data = np.array(input_data) + upper_quartile = np.percentile(data, 75) + lower_quartile = np.percentile(data, 25) + iqr = (upper_quartile - lower_quartile) * outlier_const + quartile_set = (lower_quartile - iqr, upper_quartile + iqr) + result_lst = list() + for y in data.tolist(): + if quartile_set[0] <= y <= quartile_set[1]: + result_lst.append(y) + print(quartile_set) + print(input_data) + print(result_lst) + print("") + return result_lst def get_files(path, extension=None, full_path=True):