import statistics
import numpy as np
import pandas as pd
from statistics import median
x = [-5.0, -1.1, 0.1, 2.0, 8.0, 12.8, 21.0, 25.8, 41.0]
y=np.array(x)

print("Median of data-set 1 is % s" % (median(x)))
########################### using statistics ###########
print("statistics quantiles: ",statistics.quantiles(x, n=4))
print("statistics quantiles: ",statistics.quantiles(x, n=4, method='exclusive'))
print("statistics quantiles: ",statistics.quantiles(x, n=4, method='inclusive'))

################### using Numpy #########################
print("np.quantile: ",np.quantile(y, 0.05))

print("np.quantile: ",np.quantile(y, 0.95))
v=np.quantile(y, [0.25, 0.5, 0.75])
print("np.quantile: ",np.quantile(y, [0.25, 0.5, 0.75]))
print("interquartile range1: ",v[1] - v[0])
v1=np.quantile(y, [0.25, 0.75])
quartiles = np.quantile(y, [0.25, 0.75])
print("interquartile range: ",quartiles[1] - quartiles[0])


print("percentile: ",np.percentile(y, [25, 50, 75]))
print("percentile: ",np.percentile(y, [15, 50, 75]))
print("median: ",np.median(y))

#################################### pd.Series ###############
z=pd.Series(y)

print("pd.Series .quantile(): ",z.quantile(0.05))

print("pd.Series .quantile(): ",z.quantile(0.95))

print("pd.Series .quantile():\n",z.quantile([0.25, 0.5, 0.75]))

quartiles = z.quantile([0.25, 0.75])
print("interquartile range: ",quartiles[0.75] - quartiles[0.25])