function percent(arr = [], p = 0) {
arr.sort((a, b) => a - b)
let loc = 1 + (arr.length - 1) * (p / 100)
if( Math.floor(loc) === loc ){
loc= loc+'.0'
}
let locArr = String(loc).split('.')
let loc_int = Number(locArr[0])
let loc_float = Number(locArr[1])
let res = 0
if (loc_float == 0) {
res = arr[loc_int - 1]
} else {
res = arr[loc_int - 1] + (arr[loc_int] - arr[loc_int - 1]) * (loc - loc_int)
}
return res
}
import numpy as np
a = [1, 3, 5, 7, 9, 16, 2, 6, 10]
print(np.percentile(a, 25))
b = [1, 3, 5, 7, 9, 16, 2, 6, 10, 35]
print(np.percentile(b, 25))
c = [1, 3, 5, 7, 9, 16, 2, 6, 10, 35, 0.3, 7.9, 8, 3.2]
print(np.percentile(c, 25))
def percentile_yu(data, p):
data.sort()
loc = 1 + (len(data) - 1) * (p/100)
loc_int = int(str(loc).split ('.')[0])
loc_float = int(str(loc).split ('.')[1])
if loc_float == 0:
res = data[loc_int - 1]
else:
res = data[loc_int-1] + (data[loc_int] - data[loc_int-1]) * (loc-loc_int)
return res
print(percentile_yu(a, 25))
print(percentile_yu(b, 25))
print(percentile_yu(c, 25))