Savetxt Как изменить тип с float64 на int или double
Я пытаюсь использовать функцию savetxt
в numpy. Проблема, с которой я сталкиваюсь, состоит в том, что даже я думал, что я определяю свои переменные соответственно, то есть int() или double(), в текстовом файле, который я получаю, есть float. Как это изменить?
Вход выглядит следующим образом: pNoise=[int(i), around(pNoise[0], decimals=3), around(pNoise[1], decimals=3), around(pNoise[2], decimals=3)]
строка savetxt выглядит следующим образом: savetxt(noutF, pNoisetot)
Я ожидаю: 0 1.567 8.865
вместо этого получаю 0.000000000000000000e+00 1.015909999999999940e+02 2.600000000000000089e-01
Ответы
Ответ 1
Вы можете определить, как выход должен быть отформатирован с помощью ключевого слова fmt
np.savetxt
, например:
np.savetxt("file.txt", output, fmt='%10.5f', delimiter='\t')
для чисел с округлением до пяти десятичных знаков или fmt='%i'
для вывода в виде целых чисел.
Здесь вы можете найти дополнительную информацию о возможностях fmt
:
http://docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt.html
Ответ 2
Если вы хотите указать число десятичных знаков в поплавке,
np.savetxt("file.txt", output, fmt='%10.5f', delimiter='\t')
7 десятичных знаков в этом случае
np.savetxt("file.txt", output, fmt='%10.7f', delimiter='\t')
В основном, fmt =% 10.Yf ', где Y задает количество делений.