Подтвердить что ты не робот

Сохранение массива numpy в строке txt файла

У меня есть numpy массив формы

a = [1,2,3]

который я хочу сохранить в файле .txt, так что файл выглядит так:

1 2 3

Если я использую numpy.savetxt, тогда я получаю файл вроде:

1
2
3

Должно быть легкое решение этого, я полагаю, любые предложения?

4b9b3361

Ответ 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)

и напишите этот вывод в файл.