2016-07-01 11 views
1

Ich habe eine Datei mit allen meinen Pfadnamen für jede .npy-Datei. Ich habe ungefähr 5 Millionen Dateien, also möchte ich unnötige Fors vermeiden.np.load in eine Pfaddatei

Was muss ich tun, um sie alle in meine Datenvariable wie folgt zu laden:

data = np.load (input_file_w_pathnames)

Ich weiß, das wird nicht funktionieren, aber ich frage mich, ob jemand weiß, einer cleveren Art, etwas Ähnliches zu tun, oder zumindest eine Möglichkeit, dies effizient zu tun.

+0

Wenn alle Dateien in der gleichen dic Sie können alle .csv öffnen und speichern sie in 'Daten' – Deusdeorum

Antwort

1

np.load nimmt einen Dateinamen oder ein Dateiobjekt (eine Datei, die Sie geöffnet haben). Es verwendet Standardwerkzeuge zum Lesen von Python-Dateien. Es braucht nicht mehrere Namen oder Dateien.

np.stack([np.load(f) for f in ['x.npy','x.npy','x.npy']]) 

können die Arrays in jeder Datei in eine größere Array verbinden, es ist immer noch eine Datei für Datei laden zu tun.

Denken Sie daran, dass numpy "Effizienz" erreicht wird, indem Sie die Aufgabe in kompiliertem Code ausführen - es ist schneller wegen der Kompilierung, nicht weil es um die serielle Art der Aufgabe geht. Und diese Aufgabe kommt nicht oft genug, um speziellen Code zu rechtfertigen.

Ich nehme an, Sie können leicht mit dem Laden der Dateinamen in eine Liste umgehen.

+0

danke für die Tipps. Das scheint die beste Arbeit zu sein. – badner