Как уже говорилось, лучший способ выгрузить массив в файл CSV - использовать метод .savetxt(...)
.Тем не менее, есть определенные вещи, которые мы должны знать, чтобы сделать это правильно.
Например, если у вас есть массив numpy с dtype = np.int32
как
narr = np.array([[1,2],
[3,4],
[5,6]], dtype=np.int32)
и вы хотите сохранить, используя savetxt
как
np.savetxt('values.csv', narr, delimiter=",")
Это будет хранитьданные в экспоненциальном формате с плавающей запятой как
1.000000000000000000e+00,2.000000000000000000e+00
3.000000000000000000e+00,4.000000000000000000e+00
5.000000000000000000e+00,6.000000000000000000e+00
Вам необходимо изменить форматирование, используя параметр fmt
как
np.savetxt('values.csv', narr, fmt="%d", delimiter=",")
, чтобы сохранить данные в исходном формате
Сохранение данных в сжатом формате gz
Кроме того, savetxt
можно использовать для хранения данных в сжатом формате .gz
, что может быть полезно при передаче данных по сети.
Нам просто нужно изменить расширение файла на .gz
, и numpy позаботится обо всем автоматически
np.savetxt('values.gz', narr, fmt="%d", delimiter=",")
Надеюсь, это поможет