我正在尝试使用csv.writer
对象将numpy数组写入csv文件。但写完后我得到了我的numpy数组的字符串表示!
with open('res.csv', 'w') as csvfile:
csv_writer = csv.writer(csvfile, delimiter=',', lineterminator='\n')
csv_writer.writerow(['Id', 'Solution'])
csv_writer.writerows(y_pred)
res.csv
的一些输出行是:
Id,Solution
1,0
2,1
3,1
4,0
...
但他们存储为字符串!
实际上我正在尝试通过Kaggel site学习python但是在我提交res.csv
文件后,排行榜会说我的条目是string
格式,并且必须在{{1}格式。
我该如何解决?
答案 0 :(得分:1)
试试这个:
numpy.savetxt('res.csv', y_pred, fmt='%d', delimiter=',', newline='\n', header='Id, Solution', footer='', comments='# ')
此输出:
$ cat res.csv
# Id, Solution
1,0
2,1
3,1
4,0
您可以使用fmt
关键字设置的格式字符串更改格式。见numpy.savetxt()
。您也可以更改注释符号。
答案 1 :(得分:1)
你可以这样做:
np.savetxt('test.txt', a, fmt='%d', delimiter=',',
header='Id,Solution', comments='')
如果必须指定comments=''
,以避免默认评论“#
”位于标题(和页脚)字符串(see here)的开头。