w3resource

NumPy Input and Output: savetxt() function

numpy.savetxt() function

The savetxt() function is used to save an array to a text file.

Syntax:

numpy.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='\n', header='', footer='', comments='#', encoding=None)

Version: 1.15.0

Parameter:

Name Description Required /
Optional
fname If the filename ends in .gz, the file is automatically saved in compressed gzip format.
loadtxt understands gzipped files transparently.
filename or file handle
Required
X Data to be saved to a text file.
1D or 2D array_like
Required
fmt A single format (%10.5f), a sequence of formats, or a multi-format string, e.g.
'Iteration %d – %10.5f', in which case delimiter is ignored. For complex X, the legal options for fmt are:
    a. a single specifier, fmt='%.4e', resulting in numbers formatted like
    '(%s+%sj)’ % (fmt, fmt)
    b. a full string specifying every real and imaginary part, e.g.
    '%.4e %+.4ej %.4e %+.4ej %.4e %+.4ej' for 3 columns
    c. a list of specifiers, one per column - in this case, the real
    and imaginary part must have separate specifiers, e.g. ['%.3e + %.3ej', '(%.15e%+.15ej)'] for 2 columns
str or sequence of strs
Optional
delimiter String or character separating columns.
str
Optional
newline String or character separating lines.
str
Optional
header String that will be written at the beginning of the file.
str
Optional
footer String that will be written at the end of the file.
str
Optional
comments String that will be prepended to the header and footer strings, to mark them as comments.
Default: '#', as expected by e.g. numpy.loadtxt.
str
Optional
encoding Encoding used to encode the outputfile. Does not apply to output streams.
If the encoding is something other than 'bytes' or 'latin1' you will not be able to load the file in NumPy versions < 1.14.
Default is 'latin1'.
{None, str}
Optional

Notes:

Further explanation of the fmt parameter (%[flag]width[.precision]specifier):

flags:

- : left justify

+ : Forces to precede result with + or -.

0 : Left pad the number with zeros instead of space (see width).

width:

Minimum number of characters to be printed. The value is not truncated if it has more characters.

precision:

  • For integer specifiers (eg. d,i,o,x), the minimum number of digits.
  • For e, E and f specifiers, the number of digits to print after the decimal point.
  • For g and G, the maximum number of significant digits.
  • For s, the maximum number of characters.

specifiers:

c : character

d or i : signed decimal integer

e or E : scientific notation with e or E.

f : decimal floating point

g,G : use the shorter of e,E or f

o : signed octal

s : string of characters

u : unsigned decimal integer

x,X : unsigned hexadecimal integer

This explanation of fmt is not complete, for an exhaustive specification see [R285].

NumPy.savetxt() method Example:

>>> import numpy as np
>>> x = y = z = np.arange(0.0,5.0,1.0)
>>> np.savetxt('test.out', x, delimiter=',')   # X is an array
>>> np.savetxt('test.out', (x,y,z))   # x,y,z equal sized 1D arrays
>>> np.savetxt('test.out', x, fmt='%1.4e')   # use exponential notation
>>> x

Output:

array([0., 1., 2., 3., 4.])
>>> import numpy as np
>>> x = y = z = np.arange(0.0,5.0,1.0)
>>> np.savetxt('test.out', x, delimiter=',')   # X is an array
>>> np.savetxt('test.out', (x,y,z))   # x,y,z equal sized 1D arrays
>>> np.savetxt('test.out', x, fmt='%1.4e')   # use exponential notation
>>> y

Output:

array([0., 1., 2., 3., 4.])
>>> import numpy as np
>>> x = y = z = np.arange(0.0,5.0,1.0)
>>> np.savetxt('test.out', x, delimiter=',')   # X is an array
>>> np.savetxt('test.out', (x,y,z))   # x,y,z equal sized 1D arrays
>>> np.savetxt('test.out', x, fmt='%1.4e')   # use exponential notation
>>> z

Output:

array([0., 1., 2., 3., 4.])

Python - NumPy Code Editor:

Previous: loadtxt()
Next: genfromtxt()



Share this Tutorial / Exercise on : Facebook and Twitter