2017-01-29 4 views
0

Я использую таблицу 0.75 для создания таблиц LaTeX. Функция tabulate, которая генерирует мои таблицы, имеет встроенную функцию для форматирования ввода. Но я хочу определить количество десятичных знаков для каждого столбца. Напр.tabulate: define floatfmt для каждого столбца

a  b 
18.12 16 
17.47 15 

Это встроенная функция («2f» floatfmt =), который работает отлично - но он действует на каждом столбце одинаково.

tabulate(tables[i], headers[i], numalign="center", tablefmt="latex_booktabs", floatfmt=".2f") 

Я получаю мои данные через

tables = [(list(zip(
       unumpy.nominal_values(dt), 
       unumpy.nominal_values(U), 
       unumpy.nominal_values(I), 
       unumpy.nominal_values(E), 
       unumpy.std_devs(E)))), ............and so on 

Я использую ufloat для моих списков

array123 = ufloat(nominalvalues, errors) 

очень часто, потому что это делает обработку с ошибками довольно легко. Кто-нибудь знает простой способ форматирования?

"{:.2f}".format(unumpy.nominal_values(E)) 
TypeError: non-empty format string passed to object.__format__ 

Это не работает.

Заранее спасибо.

+0

np.round (unumpy.nominal_values ​​(E), x) выполнил работу! – rfaenger

ответ

1

От documentation:

floatfmt аргумент может быть список или кортеж строк формата, один на колонку, в этом случае каждый столбец может иметь различное число форматированием ::

>>> print tabulate([[0.12345, 0.12345, 0.12345]], floatfmt=(".1f", ".3f")) 
--- ----- ------- 
0.1 0.123 0.12345 
--- ----- ------- 

Это должно сделать ваш код немного опрятным.

Смежные вопросы