Numpy savetxt - разделенный табуляцией текст с форматированием - PullRequest
0 голосов
/ 12 апреля 2020

Я хочу отформатировать текст с разделителями табуляции, чтобы я мог легко импортировать его в Excel. Другие сообщения, которые я видел, похоже, не касаются этой конкретной c проблемы. В документации предлагается использовать опцию delimiter = '\t'. Кажется, что это работает не для формата или отдельного формата, который повторяется, но это не действует, когда каждый столбец имеет отдельный формат. Что мне не хватает? Я нашел решение, поместив \t в строку формата, но это не должно быть необходимым в соответствии с документацией. Почему функция не работает, как описано?

Вот пример кода:

   fn = open('b.dat','w')
   fmt0 = '%5.2f'
   fmt1 = '%5.1f'*2 + '%6.3f'*2
   fmt2 = '%5.1f\t'*2 + '%6.3f\t' + '%6.3f'
   b = np.arange(12).reshape(3,4)/3
   print('savetxt b simple fmt0, tab delimiter',file=fn)
   np.savetxt(fn,b,delimiter='\t',fmt=fmt0)
   print('savetxt b fmt1, tab delimiter has no effect ',file=fn)
   np.savetxt(fn,b,delimiter='\t',fmt=fmt1)
   print('savetxt b fmt2 contains tabs + delimiter',file=fn)
   np.savetxt(fn,b,delimiter='\t',fmt=fmt2)
   print('savetxt b fmt2 contains tabs, no delimiter',file=fn)
   np.savetxt(fn,b,fmt=fmt2)
   fn.close()

Я не знаю, как отобразить вкладки здесь, но вывод из этого кода следующее. Вывод с fmt1 не имеет вкладок - опция разделителя не действует.

savetxt b simple fmt0, tab delimiter
 0.00    0.33    0.67    1.00
 1.33    1.67    2.00    2.33
 2.67    3.00    3.33    3.67
savetxt b fmt1, tab delimiter has no effect 
  0.0  0.3 0.667 1.000
  1.3  1.7 2.000 2.333
  2.7  3.0 3.333 3.667
savetxt b fmt2 contains tabs + delimiter
  0.0     0.3    0.667   1.000
  1.3     1.7    2.000   2.333
  2.7     3.0    3.333   3.667
savetxt b fmt2 contains tabs, no delimiter
  0.0     0.3    0.667   1.000
  1.3     1.7    2.000   2.333
  2.7     3.0    3.333   3.667
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...