格式化为整数的numpy savetxt不保存零

2024-03-29 07:11:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图通过以下方式将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

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

编辑:

我的python版本是2.7.2,运行在macosx10.9.2上


Tags: 文件csv代码numpyaswith方式open
2条回答

在使用numpy.savetxt的脚本中也有同样的问题,但是我不能使用result.astype(int),因为我在另一列中有浮点数。

使用%5.0f作为零输出的格式求解。

我将尝试将数组保存为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=",")

相关问题 更多 >