Как сохранить сочетание строк и чисел в текстовые файлы в указанном формате, используя numpy.savetxt? - PullRequest
0 голосов
/ 01 октября 2011

с одним массивом строк и другим массивом чисел, например

str_arr = np.array(['object1_short', 'object2_intermidiate', 'object3_long'])

и

flt_arr = np.array([10.01234235, 11.01234235, 12.023432])

Как можно указать fmt в np.savetxt, чтобы текстовый файл был

object1    10.01
object2    11.01
object3    12.02

, то есть два массива в %7s и %4.2f соответственно.

Я действительно хочу использовать numpy.savetxt для этого, но прямо указав

np.savetxt("output.txt", np.vstack([str_arr, flt_arr]).T), fmt = '%7s %4.2f')

кажется, не работает. Это вообще возможно с savetxt? Я действительно предпочитаю решение на основе numpy.array вместо того, чтобы разбивать и переформатировать, используя списки или переопределения.

Спасибо.

1 Ответ

1 голос
/ 01 октября 2011

Нельзя создать ndarray неоднородных типов массивов, поэтому стек str_arr и flt_arr не будет работать.Вы можете начать с преобразования flt_arr в массив str s, выполнив что-то вроде этого:

>>> np.char.mod("%4.2f", flt_arr)
array(['10.01', '11.01', '12.02'], 
      dtype='|S5')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...