Pythonic Möglichkeit zu importieren Daten aus mehreren Dateien in ein array
Ich bin relativ neu in Python und Frage mich, wie man am besten zum importieren von Daten aus mehreren Dateien in einem einzigen array. Ich habe schon ein paar text-Dateien mit 50 Zeilen zwei Spalten mit Daten (Spalte getrennt) wie:
Length=10.txt:
1, 10
2, 30
3, 50
#etc
END OF FILE
-
Length=20.txt
1, 50.7
2, 90.9
3, 10.3
#etc
END OF FILE
Sagen wir, ich habe 10 text-Dateien zu importieren und den import in eine variable namens Daten.
Ich würde gerne zu einem einzigen 3D-array mit allen Daten. So kann ich leicht Plotten und manipulieren die Daten durch Bezugnahme auf die Daten von data[:,:,n]
wo n
bezieht sich auf den index der text-Datei.
Ich denke, die Art und Weise, die ich tun würde, ist dies ein array der Form (50, 2, 10), aber nicht wissen, wie man am besten python verwenden, um es zu schaffen. Ich habe darüber nachgedacht, einen loop importieren Sie die text-Datei als 2D-array, und dann legen Sie ein 2D-array, zwar konnte Sie nicht finden, die entsprechende Befehle, dies zu tun (ich sah vstack und column_stack in numpy aber diese scheinen nicht zu einer zusätzlichen dimension).
So weit, dass ich geschrieben habe, der import-code:
file_list = glob.glob(source_dir + '/*.TXT') #Get folder path containing text files
for file_path in file_list:
data = np.genfromtxt(file_path, delimiter=',', skip_header=3, skip_footer=18)
Aber das problem mit diesem code ist, dass ich Daten nur verarbeiten, wenn es in der for-Schleife.
Was ich wirklich will, ist ein array aller importierten Daten aus text-Dateien.
Jede Hilfe wäre sehr geschätzt, danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
"Aber das problem mit diesem code ist, dass ich Daten nur verarbeiten, wenn es in der for-Schleife. "
Vorausgesetzt dein code funktioniert:
WENN alle Daten von der gleichen Form, dann fügen Sie einfach eine Liste.
und in der Schleife:
schließlich haben Sie
welcher ein array der Form (10,50,2) (transponieren, wenn Sie möchten).
Wenn die shapes nicht übereinstimmen, dann funktioniert dies nicht obwohl, numpy nicht in den Griff Reihen von verschiedenen Formen. Dann müssen Sie vielleicht eine weitere Schleife die arrays erstellt von der größten Form, und kopieren Sie Ihre Daten über.
grob, aber schnell
wenn Sie möchten, um eine Liste von Dateien aus einem bestimmten Verzeichnis, werfen Sie einen Blick auf os.gehen
Da es nicht klar ist, wie würden Sie wollen, dass die Daten, die ich gezeigt haben, haben Sie zahlreiche Möglichkeiten, um es zu speichern
allData
ist eine Liste von Wörterbüchernum die 2. Spalte mit Daten aus der 3rd-Datei, die Sie würde in der Lage sein zu tun
allData[2]['col2']
wenn Sie wollten, dass der name von der Dritten Datei
alldata[2]['name']
Sind Sie auf der Suche nach einem array [txt "column1", " txt " column2 Dateiname]?
Eine alternative, wenn Sie nicht wollen, zu transponieren zweimal.
vielleicht kannst du dies so tun: