Установка параметра fmt в numpy.savetxt

Я смотрю на numpy.savetxt и застрял в опции fmt.

Я попытался посмотреть здесь, а также ссылку в ссылке ниже всех букв, которые могут использоваться для сортировки опций fmt дайте мне общее представление о том, что происходит.

То, что я не понимаю, - это если требуется символ % и в приведенном ниже примере , как следует интерпретировать номер 10.5? Если "f" - это установка плавающей запятой, то как же оно 10.5 (тогда, опять же, я не знаю, как установлены плавающие точки...).

Ответ 1

Вы можете использовать параметр fmt разными способами, вот несколько примеров.

import numpy as np
a = np.array([[11,12,13,14],
              [21,22,23,24]])

1) Настройка точности с плавающей запятой: np.savetxt('tmp.txt',a, fmt='%1.3f')

11.000 12.000 13.000 14.000
21.000 22.000 23.000 24.000

2) Добавление символов вправо-выравнивание.

С пробелами: np.savetxt('tmp.txt',a, fmt='% 4d')

  11   12   13   14
  21   22   23   24

С нулями: np.savetxt('tmp.txt',a, fmt='%04d')

0011 0012 0013 0014
0021 0022 0023 0024

3) Добавление символов влево-выравнивание (использование "-" ).

С пробелами: np.savetxt('tmp.txt',a, fmt='%-4d')

11   12   13   14  
21   22   23   24  

Вы также можете использовать для записи выражений, например (обратите внимание, что количество записей в выражении совпадает с количеством столбцов в массиве:

4) Общий пример: np.savetxt('tmp.txt',a, fmt='%1.1f + %1.1f / (%1.1f * %1.1f)')

11.0 + 12.0 / (13.0 * 14.0)
21.0 + 22.0 / (23.0 * 24.0)

Ответ 2

Эта ссылка может быть полезна.

Из ссылки:

format_spec ::=  [[fill]align][sign][#][0][width][,][.precision][type]
fill        ::=  <any character>
align       ::=  "<" | ">" | "=" | "^"
sign        ::=  "+" | "-" | " "
width       ::=  integer
precision   ::=  integer
type        ::=  "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"

Ширина - это десятичное целое число, определяющее минимальную ширину поля. Если не указано, ширина поля будет определяться содержимым.

Если не указано явное выравнивание, перед полем ширины на ноль ('0') символ позволяет значить нулевое дополнение для числовых типов. Это эквивалентно символу заполнения '0' с типом выравнивания '='.

Точность - это десятичное число, указывающее, сколько цифр должно отображаться после десятичной точки для значения с плавающей запятой, форматированного с помощью "f" и "F", или до и после десятичной точки для значения с плавающей запятой, g 'или' G '. Для типов, отличных от числа, поле указывает максимальный размер поля - другими словами, сколько символов будет использовано из содержимого поля. Точность недопустима для целочисленных значений.