From aa5dccb6b80dc035b9d7ed26271237bafb2cb35a Mon Sep 17 00:00:00 2001 From: Mitra-babu Date: Sun, 2 Jul 2023 20:23:58 +0530 Subject: [PATCH] IQR function is added --- maths/inter_quartile_range.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/maths/inter_quartile_range.py b/maths/inter_quartile_range.py index 89bb449ed..c3be9a867 100644 --- a/maths/inter_quartile_range.py +++ b/maths/inter_quartile_range.py @@ -8,18 +8,18 @@ Script inspired from its corresponding Wikipedia article https://en.wikipedia.org/wiki/Interquartile_range """ -from typing import List +import numpy as np -def find_median(x: List[float]) -> float: +def find_median(x: np.array) -> float: """ This is the implementation of median. :param x: The list of numeric values :return: Median of the list - >>> find_median([1,2,2,3,4]) + >>> find_median(x=np.array([1,2,2,3,4])) 2 - >>> find_median([1,2,2,3,4,4]) + >>> find_median(np.array([1,2,2,3,4,4])) 2.5 @@ -30,28 +30,28 @@ def find_median(x: List[float]) -> float: return float((x[length // 2] + x[(length // 2) - 1]) / 2) -def inter_quartile_range(x: List[float]) -> float: +def inter_quartile_range(x: np.array) -> float: """ This is the implementation of inter_quartile range for a list of numeric. :param x: The list of data point :return: Inter_quartile range - >>> inter_quartile_range([4,1,2,3,2]) + >>> inter_quartile_range(x=np.array([4,1,2,3,2])) 2.0 - >>> inter_quartile_range([25,32,49,21,37,43,27,45,31]) + >>> inter_quartile_range(x=np.array([25,32,49,21,37,43,27,45,31])) 18.0 """ length = len(x) if length == 0: raise ValueError x.sort() - q1 = find_median(x[0 : length // 2]) + q1 = find_median(x[0: length // 2]) if length % 2: - q3 = find_median(x[(length // 2) + 1 : length]) + q3 = find_median(x[(length // 2) + 1: length]) else: - q3 = find_median(x[length // 2 : length]) + q3 = find_median(x[length // 2: length]) return q3 - q1