Я хочу записать некоторые случайные числа в выходной файл ascii. я генерировать номера с NumPy, поэтому номера хранятся в numpy.array
Запись вывода ascii из массивов numpy
import numpy as np
random1=np.random.uniform(-1.2,1.2,7e6)
random2=...
random3=...
Все три массива имеют одинаковый размер. Я использовал стандартный вывод файла, но это очень медленно. Всего около 8000 линий за 30 мин. Это может быть, потому что я перебираю три больших массива.
fout1 = open("output.dat","w")
for i in range(len(random1)):
fout1.write(str(random1[i])+"\t"+ str(random2[i])+"\t"+ str(random3[i])+"\n")
fout1.close()
я просто использовал print str(random1[i])+"\t"+ str(random2[i])+"\t"+ str(random3[i])
и свалил все в файле usind оболочки ./myprog.py > output.dat
, который, кажется, немного быстрее, но все-таки я не доволен скоростью вывода.
Любые рекомендации действительно приветствуются.
спасибо за хорошую подсказку. Любая рекомендация, как я ограничиваю «random1, random2, random3» между «\ t», как в моем примере? – madzone
Вы пробовали просить дядю [google] (https://www.google.ch/search?q=numpy+savetx)? –
@madzone Используйте аргумент 'delimiter': [' savetext' docs] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt.html) – Jaime