Ответ 1
Я бы попытался сохранить массив как массив 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=",")
Я пытаюсь сохранить 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 файл?
EDIT:
Просто для завершения моей версии 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=",")
Также была проблема с script с использованием numpy.savetxt
, но я не мог использовать result.astype(int)
, поскольку у меня были float в другом столбце.
Разрешил его с помощью %5.0f
для формата вывода нулей.