У меня есть набор списков, содержащих как строки, так и числа с плавающей запятой, например:
import numpy as num
NAMES = num.array(['NAME_1', 'NAME_2', 'NAME_3'])
FLOATS = num.array([ 0.5 , 0.2 , 0.3 ])
DAT = num.column_stack((NAMES, FLOATS))
Я хочу собрать эти два списка вместе и записать их в текстовый файл в виде столбцов; поэтому я хочу использовать numpy.savetxt (если это возможно).
num.savetxt('test.txt', DAT, delimiter=" ")
Когда я это сделаю, я получаю следующую ошибку:
>>> num.savetxt('test.txt', DAT, delimiter=" ")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.7/site-packages/numpy-1.8.0.dev_9597b1f_20120920-py2.7-macosx-10.8-x86_64.egg/numpy/lib/npyio.py", line 1047, in savetxt
fh.write(asbytes(format % tuple(row) + newline))
TypeError: float argument required, not numpy.string_
Идеальный выходной файл будет выглядеть так:
NAME_1 0.5
NAME_2 0.2
NAME_3 0.3
Как я могу записать как строки, так и числа с плавающей точкой в текстовый файл, возможно, избегая использования csv (я хочу сделать, если читаем для других людей)? Есть ли другой способ сделать это вместо использования numpy.savetxt?