Schreiben großer ASCII-Dateien
Verfasst: Samstag 21. Februar 2015, 09:44
Hi Leute,
ich habe einen sehr großen numpy Array und möchte diesen in eine Text-Datei schreiben. Leider dauert das sehr lang.
Ich habe bereits zwei Varianten ausprobiert und leider festgestellt das numpy.savetxt sogar fast doppelt so viel Zeit benötigt wie die "normale" list comprehension mit write().
Gibt es vielleicht eine Möglichkeit das Ganze noch schneller zu machen?
Hier mein Beispiel Code:
ich habe einen sehr großen numpy Array und möchte diesen in eine Text-Datei schreiben. Leider dauert das sehr lang.
Ich habe bereits zwei Varianten ausprobiert und leider festgestellt das numpy.savetxt sogar fast doppelt so viel Zeit benötigt wie die "normale" list comprehension mit write().
Gibt es vielleicht eine Möglichkeit das Ganze noch schneller zu machen?
Hier mein Beispiel Code:
Code: Alles auswählen
import numpy as np
import time
nodes = np.random.rand(1000000,3)
start = time.time()
f = open('test1.txt', mode='w')
[f.write( '%d, %16.14F, %16.14F, %16.14F \n' % (i+1, node_i[0], node_i[1], node_i[2]) ) for i,node_i in enumerate(nodes)]
f.close()
print time.time()-start
start = time.time()
f = open('test1.txt', mode='w')
idx_nodes = np.column_stack( (np.arange(1,len(nodes)+1),nodes) )
np.savetxt(f, idx_nodes, fmt='%d, %16.14F, %16.14F, %16.14F', delimiter=', ', newline='\n')
f.close()
print time.time()-start