Экспортировать матрицу в текстовый файл

#python #matrix #export

#python #матрица #экспорт

Вопрос:

Я пытаюсь экспортировать матрицу в текстовый файл со следующим кодом

 with open('outfile.txt','wb') as f:
   for line in M:
        np.savetxt(f, line, fmt='%.4f') 
  

Проблема в том, что файл, который я получаю, распределяет числа в разных строках, и это выглядит примерно так:

 0.0000 0.0000 0.0000 0.
0000 0.0000 0.0000 0.0000 -0.2
998 -0.2966 -0.2945 

Как я мог бы сказать python использовать каждую строку матрицы M в качестве новой полной строки из файла .txt?

Заранее благодарю вас

Комментарии:

1. не рекомендуется сохранять массивы numpy в виде текстовых файлов. Вы можете использовать это , чтобы сохранить ее как двоичный файл .npy

2. Спасибо, но мне это нужно именно в формате .txt

Ответ №1:

Если это двумерная матрица. Проще всего убедиться, что она в формате numpy, и использовать numpy.savetxt().

Ссылка на документацию ниже. https://docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt.html

Ответ №2:

Попробуйте это:

 with open('outfile.txt','wb') as f:
   for line in M:
        np.savetxt(f, line   'n', fmt='%.4f')
  

‘n’ должен переместить курсор на новую строку

Ответ №3:

Вы можете использовать встроенный в Python файловый объект, подобный такому:

 M = np.random.randn(10,10)
f = open("outfile.txt","w")
for row in M:
    for el in row:
        f.write("%.4f" %el   ' ')
    f.write('n')
f.close()
  

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