2014-10-28 2 views
0

Так у меня есть этот массив, скажем, этоЗапись массива в текстовый файл

import numpy as np 
m = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) 

, и я хочу написать свой размер в текстовый файл, а затем я хочу написать сам массив ниже этого.

Я уже сделал это несколько с

with open(filepath, 'w') as f: 
    n = len(m) 
    f.write(str(n) + ' \n') 
    np.savetxt(f, m) 

Проблема заключается в том, что в файле числа записываются в виде поплавков, и я хочу их, как они были даны, - как Интс! Насколько я могу сказать, у savetxt() нет настроек для этого.

И я попытался перейти от использования savetxt() к использованию tofile(), но это даже не будет записывать массив в файл, я предполагаю, потому что сначала написал что-то еще в файл, и это как-то испортило с его работой.

Я думаю, я мог бы просто написать его, создав цикл for, но это кажется менее идеальным, чем просто функция, ожидающая, когда я ее буду использовать, если это существует.

ответ

0

Я не знаю, если это то, что вы ищете, но он сохраняет массив, как он есть, в данном случае элементы все поплавки:

import numpy as np 
m= np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) 

filepath = '/Path/to/file/' 
fout = open(filepath + 'fout.dat', 'w') 

# I'd use this if you want the full shape of the array 
dimensions = np.shape(m) 
print >>fout, str(dimensions) + ' \dimensions' 
print >>fout, m 

fout.close() 

Надеется, что это помогает ..