savetxt Как изменить тип с float64 на int или double - PullRequest
12 голосов
/ 18 марта 2011

Я пытался использовать функцию savetxt в numpy.Проблема, с которой я сталкиваюсь, заключается в том, что даже если я определю свои переменные соответственно, то есть int () или double (), текстовый файл, который я получаю, содержит плавающие элементы.Как я могу это изменить?

Ввод выглядит следующим образом: 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

Ответы [ 2 ]

22 голосов
/ 18 марта 2011

Вы можете определить, как форматировать вывод, используя ключевое слово 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

4 голосов
/ 19 февраля 2013

В случае, если вы хотите указать количество десятичных знаков в числовом выражении,

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 указывает количество разрядов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...