Ich habe ein Python-Skript, das eine Liste von Listen mit Server-Verfügbarkeits- und Leistungsdaten erstellt, wobei jede Unterliste (oder 'Zeile') die Statistiken eines bestimmten Clusters enthält. Zum Beispiel sieht es gut formatiert so aus:
------- ------------- ------------ ---------- -------------------
Cluster %Availability Requests/Sec Errors/Sec %Memory_Utilization
------- ------------- ------------ ---------- -------------------
ams-a 98.099 1012 678 91
bos-a 98.099 1111 12 91
bos-b 55.123 1513 576 22
lax-a 99.110 988 10 89
pdx-a 98.123 1121 11 90
ord-b 75.005 1301 123 100
sjc-a 99.020 1000 10 88
...(so on)...
In Listenform könnte es also so aussehen:
[[ams-a,98.099,1012,678,91],[bos-a,98.099,1111,12,91],...]
Meine Frage:
- Wie lassen sich die Ausreißer in jeder Spalte am besten ermitteln? Oder sind Ausreißer nicht unbedingt der beste Weg, um das Problem der Suche nach „Schlechtigkeit“ anzugehen?
In den obigen Daten möchte ich auf jeden Fall etwas über bos-b und ord-b sowie ams-a wissen, da die Fehlerrate so hoch ist, aber die anderen können verworfen werden. Je nach Spalte versuche ich, den effizientesten Weg zu finden, da höher nicht unbedingt schlechter oder niedriger ist. Scheint, als würde Numpy für diese Art von Sachen oft erwähnt, aber ich bin mir nicht sicher, wo ich damit anfangen soll (leider bin ich mehr Systemadministrator als Statistiker ...). Als ich bei Stack Overflow nachfragte, erwähnte jemand, dass er die Scoreatpercentile-Funktion von numpy verwendet und etwas über das 99. Perzentil hinauswirft - scheint das eine gute Idee zu sein?
(Cross-Posting von stackoverflow hier: /programming/4606288 )