Bestimmte Werte nicht mit einlesen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
tine_beginner
User
Beiträge: 21
Registriert: Sonntag 7. Juni 2015, 14:47

Hallo zusammen,

mit dem folgenden Code lese ich Dateien aus einem Verzeichnis ein. Ich würde allerdings gerne Werte unter -10 nicht mit einlesen. Könnt ihr mir da weiterhelfen, wie und wo ich da was für eine Funktion einbauen muss? Also am besten direkt mit in der for-Schleife? Ich weiß, dass es z.B. die numpy.compress() Funktion gibt, habe es allerdings noch nicht so richtig herausgefunden ob und wie ich das hier anwenden könnte:

Code: Alles auswählen

# Module importieren
import numpy as np
import glob

# Dateien im Verzeichnis ansprechen
daten = glob.glob('*.csv')

# Liste zum befuellen erstellen
Liste = [] 

# Schleife
for each_file in daten:   
    try:
        with open(each_file) as data:
            b = np.genfromtxt((line.replace(',','.') for line in data),skip_header=9,delimiter=";")
    except ValueError:
        with open(each_file) as data:
            b = np.genfromtxt((line.replace(',','.') for line in data),skip_header=17,delimiter=";")

Liste.append(b)
Ich danke herzlich für jede Hilfe.
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

@tine_beginner: das ist eine seltsame Methode, herauszufinden, wie viele Header-Zeilen eine Datei hat. Warum gibt es da zwei verschiedene? Du liest eine Matrix ein, welche Spalten oder welche Zeilen sollen dann nicht berücksichtigt werden, wenn welcher Wert <10 ist?
tine_beginner
User
Beiträge: 21
Registriert: Sonntag 7. Juni 2015, 14:47

@Sirius3: es sind sehr viele Dateien die entweder 9 oder 17 Zeilen Header enthalten. Mir sind die Positionen innerhalb der Matrix egal (Dimension ist 480x640), es sollen einfach Werte unter -10 (es handelt sich um Temperaturdaten) nicht mit eingelesen, als herausgefiltert werden. Die Dateien bestehen nur aus Temperaturdaten, in allen Zeilen und Spalten sind also jeweils Temperaturwerte, von denen ich am Ende nur Mittelwerte etc. pro Datei berechnen möchte.
Hast du da eine Idee?
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

@tine_beginner: was ist denn nun der Unterschied zwischen den Dateien mit 9 oder 17 Headerzeilen?
Du kannst Dir mal die Dokumentation für Elementzugriffe durchlesen.
tine_beginner
User
Beiträge: 21
Registriert: Sonntag 7. Juni 2015, 14:47

@Sirius3: außer dass die Anzahl der Headerzeilrn unterschiedlich ist, gibt es keinen Unterschied. Dort stehen einfach einige Infos, die nicht benötigt werden. Ab der 10. bzw. 18. Zeile haben alle Dateien eine Dimension von 480x640.
Antworten