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

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

4b9b3361

Ответ 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 задает количество делений.