Я пытаюсь написать код, совместимый с Python 2 и 3, который выглядит следующим образом:
from __future__ import absolute_import, unicode_literals,division, print_function
import numpy as np
dat = np.random.rand(2,3)
np.savetxt('tmp111', dat, fmt='%.8f')
Это прекрасно работает в python 3, но в python 2 выдает ошибку,
ValueError: invalid fmt: u'%.8f'
Итак, он получает строку в юникоде из-за будущего импорта. Итак, я попытался предоставить строку байтов
np.savetxt('tmp111', dat, fmt=b'%.8f')
Теперь это работает. Но является ли это рекомендуемым способом написания кодов numpy для совместимости 2 и 3?