code: def multipoints(geometries, indices=None, out=None, **kwargs):
      """Create multipoints from arrays of points
  
      Parameters
      ----------
      geometries : array_like
          An array of points or coordinates (see points).
      indices : array_like, optional
          Indices into the target array where input geometries belong. If
          provided, both geometries and indices should be 1D and have matching
          sizes. Indices should be in increasing order. Missing indices result
          in a ValueError unless ``out`` is  provided, in which case the original
          value in ``out`` is kept.
      out : ndarray, optional
          An array (with dtype object) to output the geometries into.
      **kwargs
          See :ref:`NumPy ufunc docs <ufuncs.kwargs>` for other keyword arguments.
          Ignored if ``indices`` is provided.
  
      Examples
      --------
      Multipoints are constructed from points:
  
      >>> point_1 = points([1, 1])
      >>> point_2 = points([2, 2])
      >>> multipoints([point_1, point_2])
      <MULTIPOINT ((1 1), (2 2))>
      >>> multipoints([[point_1, point_2], [point_2, None]]).tolist()
      [<MULTIPOINT ((1 1), (2 2))>, <MULTIPOINT ((2 2))>]
  
      Or from coordinates directly:
  
      >>> multipoints([[0, 0], [2, 2], [3, 3]])
      <MULTIPOINT ((0 0), (2 2), (3 3))>
  
      Multiple multipoints of different sizes can be constructed efficiently using the
      ``indices`` keyword argument:
  
      >>> multipoints([point_1, point_2, point_2], indices=[0, 0, 1]).tolist()
      [<MULTIPOINT ((1 1), (2 2))>, <MULTIPOINT ((2 2))>]
  
      Missing input values (``None``) are skipd and may result in an
      empty multipoint:
  
      >>> multipoints([None])
      <MULTIPOINT EMPTY>
      >>> multipoints([point_1, None], indices=[0, 0]).tolist()
      [<MULTIPOINT ((1 1))>]
      >>> multipoints([point_1, None], indices=[0, 1]).tolist()
      [<MULTIPOINT ((1 1))>, <MULTIPOINT EMPTY>]
      """
      typ = GeometryType.MULTIPOINT
      geometries = np.asarray(geometries)
      if not isinstance(geometries, Geometry) and np.issubdtype(
          geometries.dtype, np.number
      ):
          geometries = points(geometries)
      if indices is None:
          return lib.create_collection(
              geometries, typ, out=out, **kwargs
          )
      else:
          return collections_1d(geometries, indices, typ, out=out)
  
imports: import numpy
  from shapely import Geometry, GeometryType, lib
  from shapely._enum import ParamEnum
  from shapely._geometry_helpers import collections_1d, simple_geometries_1d
  from shapely.decorators import multithreading_enabled
  from shapely.io import from_wkt
label_desc: Use image node_id 7 for calling a global function with example usage: multipoints(geometries, indices, out) and returns: lib, collections_1d