Я знаю, что это простой вопрос, но я могу найти только часть ответа по SO и не могу понять, как это сделать из документации Python или Numpy.Я уверен, что это задокументировано, я просто не понимаю.
Мне нужно печатать / писать в фиксированном формате (6 полей по 13,7e).Массив, который мне нужно напечатать, может иметь 4, 8, 12 или более значений.Я нашел np.array2string
, что составляет почти , что мне нужно.
- Есть ли способ устранить ведущие и конечные
[
и ]
? - Аналогично, есть ли способ избежать отступа во 2-й и последующих строках?
Решение не должно использовать array2string
.Это была самая простая вещь, которую я нашел для управления форматированием печати / записи для ndarray
.Я открыт для любого решения.:-)
Вот мой простой пример, демонстрирующий поведение, которое я хочу, и то, что я получаю:
>>> import numpy as np
>>> foo = np.arange(4.0)
>>> # this shows desired output with 4 values
>>> print( ('%13.7e'*4) % (foo[0], foo[1], foo[2], foo[3]) )
0.0000000e+001.0000000e+002.0000000e+003.0000000e+00
>>> print ( np.array2string(foo, separator='', formatter={'float_kind':'{:13.7e}'.format}) )
[0.0000000e+001.0000000e+002.0000000e+003.0000000e+00]
>>> foo = np.arange(12.0)
>>> print ( np.array2string(foo, separator='', max_line_width=80, formatter={'float_kind':'{:13.7e}'.format}) )
[0.0000000e+001.0000000e+002.0000000e+003.0000000e+004.0000000e+005.0000000e+00
6.0000000e+007.0000000e+008.0000000e+009.0000000e+001.0000000e+011.1000000e+01]
>>> # this shows desired output with 12 values
>>> print( ('%13.7e'*6) % (foo[0], foo[1], foo[2], foo[3], foo[4], foo[5]) )
0.0000000e+001.0000000e+002.0000000e+003.0000000e+004.0000000e+005.0000000e+00
>>> print( ('%13.7e'*6) % (foo[6], foo[7], foo[8], foo[9], foo[10], foo[11]) )
6.0000000e+007.0000000e+008.0000000e+009.0000000e+001.0000000e+011.1000000e+01