Проблема форматирования Numpy.savetxt: добавление столбца строки - PullRequest
0 голосов
/ 19 сентября 2018

Я сузил свою проблему до следующего:

import numpy as np

out_file = "results.txt"
results = [[1,2,3,.4,"5"]] # just one row for testing
format = ['%i', '%i', '%i', '%f', '%s']

np.savetxt(out_file, results, format, '\t')

Я просто пытаюсь сохранить 5 столбцов данных: 3 целых, 1 число с плавающей запятой и строку.Когда я пытаюсь это сделать, я получаю сообщение об ошибке:

File ".\npyio.py", line 1391, in savetxt
    % (str(X.dtype), format))
TypeError: Mismatch between array dtype ('<U32') and format specifier ('%i      %i      %i      %f      %s')

Код работает нормально, если я удаляю строковый формат и соответствующее значение в массиве.

Это кажется как один из тех случаев, когда я просто делаю что-то действительно глупое, но после пары часов бесполезного поиска в Интернете я думаю, что мне нужна помощь.

1 Ответ

0 голосов
/ 19 сентября 2018

Нормальные массивы numpy имеют только один тип данных.Вы можете инициализировать массив с типом dtype='O' Object, но он все равно не будет работать с savetxt().

. Решением вашей проблемы является структурированный массив, как показано здесь .

...