我正在尝试通过以下方式将numpy.array保存到.csv。

with open("resultTR.csv", "wb") as f:
    f.write(b'ImageId,Label\n')
    numpy.savetxt(f, result, fmt='%i', delimiter=",")

结果是由两列组成的numpy.array,第一列是索引(数字1到n),第二列是(0,9)的值。

不幸的是,我有一个问题,只要第二列中的值为0,那么第二列中的结果.csv文件就不会写入任何内容。

换句话说,数组的前五行如下所示:
[[  1.00000000e+00   2.00000000e+00]
 [  2.00000000e+00   0.00000000e+00]
 [  3.00000000e+00   9.00000000e+00]
 [  4.00000000e+00   9.00000000e+00]
 [  5.00000000e+00   3.00000000e+00]

.csv文件的前五行是这样的:
ImageId,Label
1,2
2
3,9
4,9
5,3

在我看来,我的代码应该可以工作,因此不保存零在我看来很奇怪。有谁知道我写入.csv文件的代码可能有什么问题?

编辑:

仅用于compleetnes,我的python版本是2.7.2,它在Mac OS X 10.9.2上运行

最佳答案

我会尝试将数组另存为int数组,如result.astype(int)或完整的:

with open("resultTR.csv", "wb") as f:
    f.write(b'ImageId,Label\n')
    numpy.savetxt(f, result.astype(int), fmt='%i', delimiter=",")

08-24 17:39