@Wechselbalg: In der Regel solltest Du Beispiele ausprobieren oder deutlich kennzeichnen, dass es sich um keinen lauffähigen Quelltext handelt. Hier rate ich jetzt einfach mal das `Casey` eigenlich `Daten` heissen sollte (oder umgekehrt).
Du solltest am besten mal ein Numpy-Tutorial durcharbeiten, um zu lernen wie man mit `numpy`-Arrays umgeht. Die Python-Grundfunktionen für Listen und andere Sequenzen funktionieren zwar auch auf `numpy`-Arrays weil das auch Sequenzen sind, aber das besondere an `numpy` ist ja gerade, dass man nicht mit Schleifen von aussen auf einzelne Elemente zugreifen muss, sondern dass dieser Typ Operationen ermöglicht, die auf alle/viele der Elemente „gleichzeitig” wirken und dann die Schleife(n) intern in Code für den Prozessor ausgeführt wird, statt in Bytecode vom Python-Interpreter. Wenn man im Zusammenhang mit `numpy`-Arrays eine Python-Schleife schreibt, sollte man sich überlegen ob sich das nicht so umschreiben lässt, dass `numpy` das übernimmt. Dafür sind diese Arrays gedacht und wenn man das nicht nutzt, stellt sich die Frage warum man es überhaupt „benutzt”.
Dein Problem könnte man beispielsweise lösen, in dem man alle endlichen Zahlen aus den jeweiligen Daten per Indexzugriff nimmt:
Code: Alles auswählen
#!/usr/bin/env python
# coding: utf-8
import numpy as np
from scipy.stats import describe
def main():
data = np.genfromtxt(
'data1.csv',
delimiter=';',
skip_header=11,
usecols=range(2, 12),
unpack=True
)
for row in data:
print describe(row[~np.isfinite(row)])
if __name__ == '__main__':
main()
Das Array wird durch `unpack` transponiert, damit man einfach in einer Schleife *direkt* über die Spalten, die jetzt die Zeilen sind, iterieren kann, ohne einen zusätzlichen Index verwenden zu müssen.
Diese ``for``-Schleife bekommt nicht nicht weg, weil die einzelnen Spalten ja unterschiedliche Anzahlen von NaNs haben können. Falls es allerdings so sein sollte, dass es immer nur komplette Zeilen in der Eingabedatei betrifft, dann könnte und sollte man diese Schleife los werden.
Du rufst `genfromtxt()` doch in dem Beispiel mit einem relativen Pfad auf. Darum verstehe ich die Frage nicht‽ Grundätzlich macht es keinen Unterschied ob man dort einen relativen oder absoluten Pfad angibt.