Numpy savetxt сохраняет 1D массив как столбец - PullRequest
1 голос
/ 22 марта 2019

Я использую loadtxt для инициализации массива.

source = np.loadtxt('source.txt').astype(int)

После этого я использую этот массив в функции, тело которой:

file = open('johnson.txt', 'ab')
first = increase(np.argsort(source[0]))
np.savetxt(file, first, delimiter='-', fmt='%i')
file.close()

В результате в текстовом файле я долженесть это:

7-1-3-6-2-4-8-5

Но у меня есть это:

7
1
3
6
2
4
8
5

Мне нужно открыть файл в двоичном режиме, потому что мне нужно добавить еще строки в файл.Итак, как я могу это исправить?Спасибо!

1 Ответ

0 голосов
/ 22 марта 2019

savetxt выполняет итерацию по входному массиву и записывает каждую «строку» в новую строку.Для типичного 2d массива это будет строка.Но для 1d-массива, который был бы элементом.

Поэтому измените запись на сохранение 2d-массива:

np.savetxt('test.txt', [first], delimiter=..., fmt=...)

Если предположить, что first - это 1d-массив, то np.array([first]) - это1 строка 2d, first[None,:] также будет работать (или reshape).

Чтобы добавить строки, откройте файл в режиме добавления 'a'.'wb'` бинарный не помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...