import statistics
import scipy.stats
import numpy as np

x = [8.0, 1, 2.5, 4, 28.0]

################ harmonic mean #################################

# using pure Python
hmean = len(x) / sum(1 / item for item in x)
print("using pure Python harmonic mean: ", hmean)
print()

#using statistics.harmonic_mean()
hmean = statistics.harmonic_mean(x)
print("using statistics.harmonic_mean() harmonic mean: ", hmean)

hmean=statistics.harmonic_mean([1, 0, 2]) #ATTENTION! Division with 0
print("using statistics.harmonic_mean() harmonic mean: ", hmean)

#using scipy.stats.hmean()
y = np.array(x)
hmean=scipy.stats.hmean(y)
print("using scipy.stats.hmean() harmonic mean: ", hmean)