42 lines
1.7 KiB
Python
42 lines
1.7 KiB
Python
|
import DeskriptiveStatistik as ds
|
||
|
|
||
|
def obereAntenne_obereAusreisser(werte):
|
||
|
werteSortiert = sorted(werte)
|
||
|
resultat = ["",[]]
|
||
|
maxAntenne = (ds.qquantil(werte, 0.75) + ds.interqurartilsabstand(werteSortiert) * 1.5)
|
||
|
if(max(werteSortiert) > maxAntenne):
|
||
|
for i in range(len(werteSortiert)):
|
||
|
wert = werteSortiert[i]
|
||
|
if(i+1 == len(werteSortiert)):
|
||
|
resultat[1].append(wert)
|
||
|
elif(werteSortiert[i+1] > maxAntenne) and resultat[0] == "":
|
||
|
resultat[0] = wert
|
||
|
elif(werteSortiert[i+1] > maxAntenne):
|
||
|
resultat[1].append(wert)
|
||
|
else:
|
||
|
resultat[0] = max(werteSortiert)
|
||
|
return resultat
|
||
|
|
||
|
def untereAntenne_untereAusreisser(werte):
|
||
|
werteSortiert = sorted(werte, reverse=True)
|
||
|
resultat = ["",[]]
|
||
|
maxAntenne = (ds.qquantil(werte, 0.25) - ds.interqurartilsabstand(werteSortiert) * 1.5)
|
||
|
if(min(werteSortiert) < maxAntenne):
|
||
|
for i in range(len(werteSortiert)):
|
||
|
wert = werteSortiert[i]
|
||
|
if(i+1 == len(werteSortiert)):
|
||
|
resultat[1].append(wert)
|
||
|
elif(werteSortiert[i+1] < maxAntenne) and resultat[0] == "":
|
||
|
resultat[0] = wert
|
||
|
elif(werteSortiert[i+1] < maxAntenne):
|
||
|
resultat[1].append(wert)
|
||
|
else:
|
||
|
resultat[0] = min(werteSortiert)
|
||
|
return resultat
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
werte = [12, -5, 5, 52, -6, -5, 8, -7, 22, -46, 8, -14, 5, 47]
|
||
|
print("obere Antenne: ", obereAntenne_obereAusreisser(werte)[0])
|
||
|
print("obere Ausreisser: ", obereAntenne_obereAusreisser(werte)[1])
|
||
|
print("untere Antenne: ", untereAntenne_untereAusreisser(werte)[0])
|
||
|
print("untere Ausreisser: ", untereAntenne_untereAusreisser(werte)[1])
|