summaryrefslogtreecommitdiff
path: root/numpy/lib/npyio.py
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/lib/npyio.py')
-rw-r--r--numpy/lib/npyio.py61
1 files changed, 33 insertions, 28 deletions
diff --git a/numpy/lib/npyio.py b/numpy/lib/npyio.py
index 3b2de3e61..c4d625bd3 100644
--- a/numpy/lib/npyio.py
+++ b/numpy/lib/npyio.py
@@ -1,4 +1,3 @@
-import sys
import os
import re
import functools
@@ -24,7 +23,7 @@ from ._iotools import (
from numpy.compat import (
asbytes, asstr, asunicode, os_fspath, os_PathLike,
- pickle, contextlib_nullcontext
+ pickle
)
@@ -517,7 +516,7 @@ def save(file, arr, allow_pickle=True, fix_imports=True):
# [1 2] [1 3]
"""
if hasattr(file, 'write'):
- file_ctx = contextlib_nullcontext(file)
+ file_ctx = contextlib.nullcontext(file)
else:
file = os_fspath(file)
if not file.endswith('.npy'):
@@ -539,10 +538,11 @@ def _savez_dispatcher(file, *args, **kwds):
def savez(file, *args, **kwds):
"""Save several arrays into a single file in uncompressed ``.npz`` format.
- If arguments are passed in with no keywords, the corresponding variable
- names, in the ``.npz`` file, are 'arr_0', 'arr_1', etc. If keyword
- arguments are given, the corresponding variable names, in the ``.npz``
- file will match the keyword names.
+ Provide arrays as keyword arguments to store them under the
+ corresponding name in the output file: ``savez(fn, x=x, y=y)``.
+
+ If arrays are specified as positional arguments, i.e., ``savez(fn,
+ x, y)``, their names will be `arr_0`, `arr_1`, etc.
Parameters
----------
@@ -552,13 +552,12 @@ def savez(file, *args, **kwds):
``.npz`` extension will be appended to the filename if it is not
already there.
args : Arguments, optional
- Arrays to save to the file. Since it is not possible for Python to
- know the names of the arrays outside `savez`, the arrays will be saved
- with names "arr_0", "arr_1", and so on. These arguments can be any
- expression.
+ Arrays to save to the file. Please use keyword arguments (see
+ `kwds` below) to assign names to arrays. Arrays specified as
+ args will be named "arr_0", "arr_1", and so on.
kwds : Keyword arguments, optional
- Arrays to save to the file. Arrays will be saved in the file with the
- keyword names.
+ Arrays to save to the file. Each array will be saved to the
+ output file with its corresponding keyword name.
Returns
-------
@@ -586,6 +585,10 @@ def savez(file, *args, **kwds):
inside the ZIP archive. Therefore, keys should be valid filenames.
E.g., avoid keys that begin with ``/`` or contain ``.``.
+ When naming variables with keyword arguments, it is not possible to name a
+ variable ``file``, as this would cause the ``file`` argument to be defined
+ twice in the call to ``savez``.
+
Examples
--------
>>> from tempfile import TemporaryFile
@@ -613,6 +616,7 @@ def savez(file, *args, **kwds):
['x', 'y']
>>> npzfile['x']
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
+
"""
_savez(file, args, kwds, False)
@@ -627,9 +631,11 @@ def savez_compressed(file, *args, **kwds):
"""
Save several arrays into a single file in compressed ``.npz`` format.
- If keyword arguments are given, then filenames are taken from the keywords.
- If arguments are passed in with no keywords, then stored filenames are
- arr_0, arr_1, etc.
+ Provide arrays as keyword arguments to store them under the
+ corresponding name in the output file: ``savez(fn, x=x, y=y)``.
+
+ If arrays are specified as positional arguments, i.e., ``savez(fn,
+ x, y)``, their names will be `arr_0`, `arr_1`, etc.
Parameters
----------
@@ -639,13 +645,12 @@ def savez_compressed(file, *args, **kwds):
``.npz`` extension will be appended to the filename if it is not
already there.
args : Arguments, optional
- Arrays to save to the file. Since it is not possible for Python to
- know the names of the arrays outside `savez`, the arrays will be saved
- with names "arr_0", "arr_1", and so on. These arguments can be any
- expression.
+ Arrays to save to the file. Please use keyword arguments (see
+ `kwds` below) to assign names to arrays. Arrays specified as
+ args will be named "arr_0", "arr_1", and so on.
kwds : Keyword arguments, optional
- Arrays to save to the file. Arrays will be saved in the file with the
- keyword names.
+ Arrays to save to the file. Each array will be saved to the
+ output file with its corresponding keyword name.
Returns
-------
@@ -1585,7 +1590,7 @@ def genfromtxt(fname, dtype=float, comments='#', delimiter=None,
column, individually.
comments : str, optional
The character used to indicate the start of a comment.
- All the characters occurring on a line after a comment are discarded
+ All the characters occurring on a line after a comment are discarded.
delimiter : str, int, or sequence, optional
The string used to separate values. By default, any consecutive
whitespaces act as delimiter. An integer or sequence of integers
@@ -1612,15 +1617,15 @@ def genfromtxt(fname, dtype=float, comments='#', delimiter=None,
``usecols = (1, 4, 5)`` will extract the 2nd, 5th and 6th columns.
names : {None, True, str, sequence}, optional
If `names` is True, the field names are read from the first line after
- the first `skip_header` lines. This line can optionally be proceeded
+ the first `skip_header` lines. This line can optionally be preceeded
by a comment delimiter. If `names` is a sequence or a single-string of
comma-separated names, the names will be used to define the field names
in a structured dtype. If `names` is None, the names of the dtype
fields will be used, if any.
excludelist : sequence, optional
A list of names to exclude. This list is appended to the default list
- ['return','file','print']. Excluded names are appended an underscore:
- for example, `file` would become `file_`.
+ ['return','file','print']. Excluded names are appended with an
+ underscore: for example, `file` would become `file_`.
deletechars : str, optional
A string combining invalid characters that must be deleted from the
names.
@@ -1629,7 +1634,7 @@ def genfromtxt(fname, dtype=float, comments='#', delimiter=None,
autostrip : bool, optional
Whether to automatically strip white spaces from the variables.
replace_space : char, optional
- Character(s) used in replacement of white spaces in the variables
+ Character(s) used in replacement of white spaces in the variable
names. By default, use a '_'.
case_sensitive : {True, False, 'upper', 'lower'}, optional
If True, field names are case sensitive.
@@ -1792,7 +1797,7 @@ def genfromtxt(fname, dtype=float, comments='#', delimiter=None,
fid_ctx = contextlib.closing(fid)
else:
fid = fname
- fid_ctx = contextlib_nullcontext(fid)
+ fid_ctx = contextlib.nullcontext(fid)
fhd = iter(fid)
except TypeError as e:
raise TypeError(