code: def hamming(u, v, w=None):
      """
      Compute the Hamming distance between two 1-D arrays.
  
      The Hamming distance between 1-D arrays `u` and `v`, is simply the
      proportion of disagreeing components in `u` and `v`. If `u` and `v` are
      boolean vectors, the Hamming distance is
  
      .. math::
  
         \\frac{c_{01} + c_{10}}{n}
  
      where :math:`c_{ij}` is the number of occurrences of
      :math:`\\mathtt{u[k]} = i` and :math:`\\mathtt{v[k]} = j` for
      :math:`k < n`.
  
      Parameters
      ----------
      u : (N,) array_like
          Input array.
      v : (N,) array_like
          Input array.
      w : (N,) array_like, optional
          The weights for each value in `u` and `v`. Default is None,
          which gives each value a weight of 1.0
  
      Returns
      -------
      hamming : double
          The Hamming distance between vectors `u` and `v`.
  
      Examples
      --------
      >>> from scipy.spatial import distance
      >>> distance.hamming([1, 0, 0], [0, 1, 0])
      0.66666666666666663
      >>> distance.hamming([1, 0, 0], [1, 1, 0])
      0.33333333333333331
      >>> distance.hamming([1, 0, 0], [2, 0, 0])
      0.33333333333333331
      >>> distance.hamming([1, 0, 0], [3, 0, 0])
      0.33333333333333331
  
      """
      u = _validate_vector(u)
      v = _validate_vector(v)
      if u.shape != v.shape:
          raise ValueError("The 1d arrays must have equal lengths.")
      u_ne_v = u != v
      if w is not None:
          w = _validate_weights(w)
          if w.shape != u.shape:
              raise ValueError(
                  "'w' should have the same length as 'u' and 'v'."
              )
          w = w / w.sum()
          return np.dot(u_ne_v, w)
      return np.mean(u_ne_v)
  
imports: import math
  import warnings
  import numpy
  import dataclasses
  from typing import Optional, Callable
  from functools import partial
  from scipy._lib._util import _asarray_validated
  from .None import _distance_wrap
  from .None import _hausdorff
  from ..linalg import norm
  from ..special import rel_entr
  from .None import _distance_pybind
label_desc: Use image node_id 22 for calling a global function with example usage: hamming(u, v, w) and returns: np, np