code: def vector_norm(vec, axis=-1, keepdims=False):
      """Return vector Euclidean (L2) norm
  
      See :term:`unit vector` and :term:`Euclidean norm`
  
      Parameters
      ----------
      vec : array_like
          Vectors to norm.
      axis : int
          Axis over which to norm. By default norm over last axis. If `axis` is
          None, `vec` is flattened then normed.
      keepdims : bool
          If True, the output will have the same number of dimensions as `vec`,
          with shape 1 on `axis`.
  
      Returns
      -------
      norm : array
          Euclidean norms of vectors.
  
      Examples
      --------
      >>> import numpy as np
      >>> vec = [[8, 15, 0], [0, 36, 77]]
      >>> vector_norm(vec)
      array([ 17.,  85.])
      >>> vector_norm(vec, keepdims=True)
      array([[ 17.],
             [ 85.]])
      >>> vector_norm(vec, axis=0)
      array([  8.,  39.,  77.])
  
      """
      vec = np.asarray(vec)
      vec_norm = np.sqrt((vec * vec).sum(axis))
      if keepdims:
          if axis is None:
              shape = [1] * vec.ndim
          else:
              shape = list(vec.shape)
              shape[axis] = 1
          vec_norm = vec_norm.reshape(shape)
      return vec_norm
  
imports: import itertools
  import math
  import numpy
  import numpy.linalg
label_desc: Use image node_id 5 for calling a global function with example usage: vector_norm(vec, axis, keepdims) and returns: vec_norm