code: def get_initial_shapes(input_types, args):
      """Extract shapes and ndims of input args or kwargs values.
  
      Store the shapes of the input args, or kwargs values,
      that are array-like, store None otherwise.
  
      Parameters
      ----------
      input_types : list
          Point types corresponding to the args, or kwargs values.
      args : tuple or dict_values
          Args, or kwargs values, of a function.
  
      Returns
      -------
      in_shapes : list
          Shapes of array-like input args, or kwargs values.
      """
      in_shapes = []
  
      for arg, input_type in zip(args, input_types):
          if input_type == "scalar":
              arg = gs.array(arg)
  
          if input_type in POINT_TYPES and arg is not None:
              in_shapes.append(gs.shape(arg))
          elif input_type in OTHER_TYPES or arg is None:
              in_shapes.append(None)
          else:
              raise ValueError(ERROR_MSG % input_type)
      return in_shapes
  
file_path: geomstats/geomstats/vectorization.py
imports: import math
  import geomstats.backend
label_desc: Use image node_id 10 for calling a global function with example usage: get_initial_shapes(input_types, args) and returns: in_shapes