Подтвердить что ты не робот

Numble savetxt, отформатированный как integer, не сохраняет нули

Я пытаюсь сохранить 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

4b9b3361

Ответ 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=",")

Ответ 2

Также была проблема с script с использованием numpy.savetxt, но я не мог использовать result.astype(int), поскольку у меня были float в другом столбце.

Разрешил его с помощью %5.0f для формата вывода нулей.