次の方法でnumpy.arrayを.csvに保存しようとしています。
with open("resultTR.csv", "wb") as f:
f.write(b'ImageId,Label\n')
numpy.savetxt(f, result, fmt='%i', delimiter=",")
結果は、2つの列で構成されるnumpy.arrayです。最初の列はインデックス(1〜nの数字)、2番目の列の値は(0,9)です。
残念ながら、2番目の列に0があると、2番目の列の結果の.csvファイルには何も書き込まれないという問題があります。
つまり、配列の最初の5行は次のようになります。
[[ 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ファイルの最初の5行:
ImageId,Label
1,2
2
3,9
4,9
5,3
私のコードは機能するはずなので、ゼロを保存しないのは非常に奇妙に思えます。 .csvファイルに書き込むためのコードで何が間違っている可能性があるか、誰かが考えていますか?
編集:
完全に私のpythonバージョンは2.7.2で、Mac OS X 10.9.2で実行されています
result.astype(int)
のように、または完全に配列をint配列として保存してみます:
with open("resultTR.csv", "wb") as f:
f.write(b'ImageId,Label\n')
numpy.savetxt(f, result.astype(int), fmt='%i', delimiter=",")
_numpy.savetxt
_を使用するスクリプトでも同じ問題が発生しましたが、別の列にフロートがあったため、result.astype(int)
を使用できませんでした。
ゼロの出力形式に_%5.0f
_を使用して解決しました。