code: def save_array(store, arr, **kwargs):
      
      may_need_closing = isinstance(store, str)
      store = normalize_store_arg(store, clobber=True)
      try:
          _create_array(arr, store=store, overwrite=True, **kwargs)
      finally:
          if may_need_closing and hasattr(store, 'close'):
              # needed to ensure zip file records are written
              store.close()
docs: Convenience function to save a NumPy array to the local file system, following a
      similar API to the NumPy save() function.
  
      Parameters
      ----------
      store : MutableMapping or string
          Store or path to directory in file system or name of zip file.
      arr : ndarray
          NumPy array with data to save.
      kwargs
          Passed through to :func:`create`, e.g., compressor.
  
      Examples
      --------
      Save an array to a directory on the file system (uses a :class:`DirectoryStore`)::
  
          >>> import zarr
          >>> import numpy as np
          >>> arr = np.arange(10000)
          >>> zarr.save_array('data/example.zarr', arr)
          >>> zarr.load('data/example.zarr')
          array([   0,    1,    2, ..., 9997, 9998, 9999])
  
      Save an array to a single file (uses a :class:`ZipStore`)::
  
          >>> zarr.save_array('data/example.zip', arr)
          >>> zarr.load('data/example.zip')
          array([   0,    1,    2, ..., 9997, 9998, 9999])