zik*_*y90 24 python csv arrays numpy
我试图通过以下方式将numpy.array保存到.csv.
with open("resultTR.csv", "wb") as f:
f.write(b'ImageId,Label\n')
numpy.savetxt(f, result, fmt='%i', delimiter=",")
Run Code Online (Sandbox Code Playgroud)
结果是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]
Run Code Online (Sandbox Code Playgroud)
前五行的.csv文件如下:
ImageId,Label
1,2
2
3,9
4,9
5,3
Run Code Online (Sandbox Code Playgroud)
它看起来像我的代码应该工作,因此不保存零似乎在我看来非常奇怪.有没有人知道我的代码写入.csv文件可能有什么问题?
编辑:
仅仅为了完成我的python版本是2.7.2并且它在Mac OS X 10.9.2上运行
ask*_*han 34
我会尝试将数组保存为int数组,如in result.astype(int)
或full:
with open("resultTR.csv", "wb") as f:
f.write(b'ImageId,Label\n')
numpy.savetxt(f, result.astype(int), fmt='%i', delimiter=",")
Run Code Online (Sandbox Code Playgroud)
小智 5
更干净的解决方案是使用参数fmt='%s'
。
with open("resultTR.csv", "wb") as f:
f.write(b'ImageId,Label\n')
numpy.savetxt(f, result, fmt='%s', delimiter=",")
Run Code Online (Sandbox Code Playgroud)