write txt strings savetxt loadtxt array python arrays string numpy save

python - strings - Configurando la opción fmt en numpy.savetxt



save array of strings python (2)

Estoy mirando numpy.savetxt y estoy atascado en la opción fmt .

Intenté mirar here y también la referencia en el enlace a continuación. Todas las letras que se pueden usar para el fmt opción fmt me dan una idea general de lo que está sucediendo.

Lo que no entiendo es si se requiere el símbolo % y en un ejemplo que se da here ¿cómo debo interpretar el número 10.5? Si "f" se trata de establecer el punto flotante, entonces, ¿cómo es que es 10.5 (de nuevo, es posible que no sepa cómo se establecen los puntos flotantes ...).


Este link puede ser útil.

Desde el enlace:

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" | "%"

El ancho es un entero decimal que define el ancho mínimo del campo. Si no se especifica, el ancho del campo será determinado por el contenido.

Cuando no se proporciona una alineación explícita, el campo de ancho precedido por un carácter de cero (''0'') habilita el relleno a cero con signo para los tipos numéricos. Esto es equivalente a un carácter de relleno de ''0'' con un tipo de alineación de ''=''.

La precisión es un número decimal que indica cuántos dígitos se deben mostrar después del punto decimal para un valor de punto flotante formateado con ''f'' y ''F'', o antes y después del punto decimal para un valor de punto flotante formateado con ''g'' o ''SOL''. Para los tipos que no son números, el campo indica el tamaño máximo del campo; en otras palabras, cuántos caracteres se usarán del contenido del campo. La precisión no está permitida para valores enteros.


Puede usar el parámetro fmt de muchas maneras, aquí hay algunos ejemplos.

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

1) Configuración de la precisión de punto flotante: 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) Añadiendo caracteres para justificar a la derecha.

Con espacios: np.savetxt(''tmp.txt'',a, fmt=''% 4d'')

11 12 13 14 21 22 23 24

Con ceros: np.savetxt(''tmp.txt'',a, fmt=''%04d'')

0011 0012 0013 0014 0021 0022 0023 0024

3) Agregar caracteres para justificar a la izquierda (uso de " - ").

Con espacios: np.savetxt(''tmp.txt'',a, fmt=''%-4d'')

11 12 13 14 21 22 23 24

También puede usar para escribir expresiones, como (tenga en cuenta que el número de entradas en la expresión es el mismo que el número de columnas en la matriz:

4) Ejemplo general: 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)