code: def load(fname):
      
      if not isinstance(fname, string_types):
          raise TypeError('fname required to be a string')
      out_size = mx_uint()
      out_name_size = mx_uint()
      handles = ctypes.POINTER(NDArrayHandle)()
      names = ctypes.POINTER(ctypes.c_char_p)()
      check_call(_LIB.MXNDArrayLoad(c_str(fname),
                                    ctypes.byref(out_size),
                                    ctypes.byref(handles),
                                    ctypes.byref(out_name_size),
                                    ctypes.byref(names)))
      if out_name_size.value == 0:
          return [_ndarray_cls(NDArrayHandle(handles[i])) for i in range(out_size.value)]
      else:
          assert out_name_size.value == out_size.value
          return dict(
              (py_str(names[i]), _ndarray_cls(NDArrayHandle(handles[i])))
              for i in range(out_size.value))
docs: Loads an array from file.
  
      See more details in ``save``.
  
      Parameters
      ----------
      fname : str
          The filename.
  
      Returns
      -------
      list of NDArray, RowSparseNDArray or CSRNDArray, or \
      dict of str to NDArray, RowSparseNDArray or CSRNDArray
          Loaded data.