Сохранение массива numpy в строке txt файла
У меня есть numpy массив формы
a = [1,2,3]
который я хочу сохранить в файле .txt, так что файл выглядит так:
1 2 3
Если я использую numpy.savetxt, тогда я получаю файл вроде:
1
2
3
Должно быть легкое решение этого, я полагаю, любые предложения?
Ответы
Ответ 1
Если numpy >= 1.5
, вы можете сделать:
numpy.savetxt(filename, a, newline=" ")
Edit
несколько 1D массивов с одинаковой длиной
a = numpy.array([1,2,3])
b = numpy.array([4,5,6])
numpy.savetxt(filename, (a,b), fmt="%d")
# gives:
# 1 2 3
# 4 5 6
несколько массивов 1D с переменной длиной
a = numpy.array([1,2,3])
b = numpy.array([4,5])
with open(filename,"w") as f:
f.write("\n".join(" ".join(map(str, x)) for x in (a,b)))
# gives:
# 1 2 3
# 4 5
Ответ 2
Альтернативный ответ состоит в том, чтобы изменить массив так, чтобы он имел размеры (1, N)
следующим образом:
savetext(filename, a.reshape(1, a.shape[0]))
Ответ 3
import numpy
a = numpy.array([1,2,3])
with open(r'test.txt', 'w') as f:
f.write(" ".join(map(str, a)))
Ответ 4
Я обнаружил, что первое решение в принятом ответе будет проблематичным для случаев, когда символ новой строки по-прежнему требуется. Самое простое решение этой проблемы:
numpy.savetxt(filename, [a], delimiter='\t')
Ответ 5
только
' '.join(a)
и напишите этот вывод в файл.