it-swarm.com.de

Festlegen der Option fmt in numpy.savetxt

Ich schaue auf die numpy.savetxt und bin bei der Option fmt hängen geblieben.

Ich habe versucht, mir hier anzuschauen, und auch der Verweis im Link unter allen Buchstaben, die für die Option fmt verwendet werden können, gibt mir einen allgemeinen Überblick darüber, was vor sich geht.

Was ich nicht verstehe ist, wenn die % Symbol ist erforderlich und in einem Beispiel angegeben hier Wie soll ich die 10.5-Zahl interpretieren? Wenn es sich bei "f" um das Festlegen des Gleitkommas handelt, wie kommt es dann, dass es 10.5 ist (andererseits weiß ich möglicherweise nicht, wie Gleitkommas festgelegt werden ...).

23
leb

Sie können den Parameter fmt auf viele Arten verwenden. Hier einige Beispiele.

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

1) Festlegen der Gleitkommapräzision: 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) Hinzufügen von Zeichen zur richtigen Ausrichtung.

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

  11   12   13   14
  21   22   23   24

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

0011 0012 0013 0014
0021 0022 0023 0024

3) Linksbündiges Hinzufügen von Zeichen (Verwendung von "-").

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

11   12   13   14  
21   22   23   24  

Sie können auch zum Schreiben von Ausdrücken wie (beachten Sie, dass die Anzahl der Einträge im Ausdruck der Anzahl der Spalten im Array entspricht:

4) Allgemeines Beispiel: 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)
47

Dies Link könnte hilfreich sein.

Über den Link:

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

Width ist eine dezimale Ganzzahl, die die minimale Feldbreite definiert. Wenn nicht angegeben, wird die Feldbreite durch den Inhalt bestimmt.

Wenn keine explizite Ausrichtung angegeben ist, können numerische Typen vor dem Feld width durch ein Nullzeichen ('0') vorzeichenbewusst aufgefüllt werden. Dies entspricht dem Füllzeichen '0' mit dem Ausrichtungstyp '='.

Die Genauigkeit ist eine Dezimalzahl, die angibt, wie viele Stellen nach dem Dezimalpunkt für einen mit 'f' und 'F' formatierten Gleitkommawert oder vor und nach dem Dezimalpunkt für einen mit 'g' oder 'f' formatierten Gleitkommawert angezeigt werden sollen 'G'. Bei Nicht-Zahlentypen gibt das Feld die maximale Feldgröße an, dh wie viele Zeichen aus dem Feldinhalt verwendet werden. Die Genauigkeit ist für ganzzahlige Werte nicht zulässig.

3
FFT