code: 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.
  
      Parameters
      ----------
      file : str
          Either the filename (string) or an open file (file-like object)
          where the data will be saved.
      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.
      kwds : Keyword arguments, optional
          Arrays to save to the file. Arrays will be saved in the file with the
          keyword names.
  
      Returns
      -------
      None
  
      See Also
      --------
      save : Save a single array to a binary file in NumPy format.
  
      Notes
      -----
      The ``.npz`` file format is a zipped archive of files named after the
      variables they contain.  The archive is not compressed and each file
      in the archive contains one variable in ``.npy`` format. For a
      description of the ``.npy`` format, see :py:mod:`numpy.lib.format`.
  
      When opening the saved ``.npz`` file with `load` a dictionary object
      mapping file-names to the arrays themselves.
  
      When saving dictionaries, the dictionary keys become filenames
      inside the ZIP archive. Therefore, keys should be valid filenames.
      E.g., avoid keys that begin with ``/`` or contain ``.``.
      """
  
      if len(args):
          for i, arg in enumerate(args):
              name = "arr_{}".format(str(i))
              assert (
                  name not in kwds
              ), "Naming conflict between arg {} and kwargs.".format(
                  str(i)
              )
              kwds[name] = arg
  
      str_keys = kwds.keys()
      nd_vals = kwds.values()
      if any(not isinstance(k, string_types) for k in str_keys) or any(
          not isinstance(v, NDArray) for v in nd_vals
      ):
          raise TypeError(
              "Only accepts dict str->ndarray or list of ndarrays"
          )
  
      keys = c_str_array(str_keys)
      handles = c_handle_array(nd_vals)
      check_call(
          _LIB.MXNDArraySave(
              c_str(file), mx_uint(len(handles)), handles, keys
          )
      )
  
file_path: mxnet/python/mxnet/numpy_extension/utils.py
imports: import ctypes
  from ..util import is_np_array, is_np_shape
  from ..base import _LIB, check_call, string_types, c_str_array
  from ..base import c_handle_array, c_str, mx_uint, NDArrayHandle, py_str
  from ..dlpack import ndarray_to_dlpack_for_read, ndarray_to_dlpack_for_write
  from ..dlpack import ndarray_from_dlpack, ndarray_from_numpy
  from ..numpy import ndarray, array
  from ..ndarray import NDArray
label_desc: Use image node_id 2 for calling a global function with example usage: savez(file) without return types