code: def map_stack(array3D, z_function):
      
      _, _, zdim = array3D.shape
      return np.dstack([z_function(array3D[:,:,z]) for z in range(zdim)])
docs: Return 3D array where each z-slice has had the function applied to it.
  
      :param array3D: 3D numpy.array
      :param z_function: function to be mapped to each z-slice