code: def skew(a, axis=0, bias=True, nan_policy="propagate"):
      if nan_policy != "propagate":
          raise NotImplementedError(
              "`nan_policy` other than 'propagate' have not been implemented."
          )
  
      n = a.shape[axis]  # noqa; for bias
      m2 = moment(a, 2, axis)
      m3 = moment(a, 3, axis)
      zero = m2 == 0
      vals = da.where(~zero, m3 / m2**1.5, 0.0)
      # vals = da.where(~zero, (m2, m3),
      #                 lambda m2, m3: m3 / m2**1.5,
      #                 0.)
      if not bias:
          # Need a version of np.place
          raise NotImplementedError("bias=False is not implemented.")
  
      if vals.ndim == 0:
          # TODO: scalar, min is a workaround
          return vals.min()
  
      return vals
  
imports: from __future__ import annotations
  import math
  from collections import namedtuple
  import numpy
  import dask.array
  from dask import delayed
  from dask.array.ufunc import wrap_elemwise
  from dask.utils import derived_from
  from scipy import special
  from scipy.stats import distributions
label_desc: Use image node_id 6 for calling a global function with example usage: skew(a, axis, bias, nan_policy) and returns: vals, vals