code: def unpackbits(a, axis=None, count=None, bitorder="big"):
      """
      unpackbits(a, /, axis=None, count=None, bitorder='big')
  
      Unpacks elements of a uint8 array into a binary-valued output array.
  
      Each element of `a` represents a bit-field that should be unpacked
      into a binary-valued output array. The shape of the output array is
      either 1-D (if `axis` is ``None``) or the same shape as the input
      array with unpacking done along the axis specified.
  
      Parameters
      ----------
      a : ndarray, uint8 type
         Input array.
      axis : int, optional
          The dimension over which bit-unpacking is done.
          ``None`` implies unpacking the flattened array.
      count : int or None, optional
          The number of elements to unpack along `axis`, provided as a way
          of undoing the effect of packing a size that is not a multiple
          of eight. A non-negative number means to only unpack `count`
          bits. A negative number means to trim off that many bits from
          the end. ``None`` means to unpack the entire array (the
          default). Counts larger than the available number of bits will
          add zero padding to the output. Negative counts must not
          exceed the available number of bits.
  
          .. versionadded:: 1.17.0
  
      bitorder : {'big', 'little'}, optional
          The order of the returned bits. 'big' will mimic bin(val),
          ``3 = 0b00000011 => [0, 0, 0, 0, 0, 0, 1, 1]``, 'little' will reverse
          the order to ``[1, 1, 0, 0, 0, 0, 0, 0]``.
          Defaults to 'big'.
  
          .. versionadded:: 1.17.0
  
      Returns
      -------
      unpacked : ndarray, uint8 type
         The elements are binary-valued (0 or 1).
  
      See Also
      --------
      packbits : Packs the elements of a binary-valued array into bits in
                 a uint8 array.
  
      Examples
      --------
      >>> a = np.array([[2], [7], [23]], dtype=np.uint8)
      >>> a
      array([[ 2],
             [ 7],
             [23]], dtype=uint8)
      >>> b = np.unpackbits(a, axis=1)
      >>> b
      array([[0, 0, 0, 0, 0, 0, 1, 0],
             [0, 0, 0, 0, 0, 1, 1, 1],
             [0, 0, 0, 1, 0, 1, 1, 1]], dtype=uint8)
      >>> c = np.unpackbits(a, axis=1, count=-3)
      >>> c
      array([[0, 0, 0, 0, 0],
             [0, 0, 0, 0, 0],
             [0, 0, 0, 1, 0]], dtype=uint8)
  
      >>> p = np.packbits(b, axis=0)
      >>> np.unpackbits(p, axis=0)
      array([[0, 0, 0, 0, 0, 0, 1, 0],
             [0, 0, 0, 0, 0, 1, 1, 1],
             [0, 0, 0, 1, 0, 1, 1, 1],
             [0, 0, 0, 0, 0, 0, 0, 0],
             [0, 0, 0, 0, 0, 0, 0, 0],
             [0, 0, 0, 0, 0, 0, 0, 0],
             [0, 0, 0, 0, 0, 0, 0, 0],
             [0, 0, 0, 0, 0, 0, 0, 0]], dtype=uint8)
      >>> np.array_equal(b, np.unpackbits(p, axis=0, count=b.shape[0]))
      True
  
      """
      return (a,)
  
imports: import functools
  from .None import overrides
  from .None import _multiarray_umath
  from ._multiarray_umath import *
  from ._multiarray_umath import _flagdict, from_dlpack, _place, _reconstruct, _vec_string, _ARRAY_API, _monotonicity, _get_ndarray_c_version, _get_madvise_hugepage, _set_madvise_hugepage, _get_promotion_state, _set_promotion_state
label_desc: Use image node_id 17 for calling a global function with example usage: unpackbits(a, axis, count, bitorder) and returns: a