code: def _mark_isolates(G, symmetrize=None) -> cp.ndarray[bool]:
      """Return a boolean mask array indicating indices of isolated nodes."""
      mark_isolates = cp.ones(len(G), bool)
      if G.is_directed() and symmetrize == "intersection":
          N = G._N
          # Upcast to int64 so indices don't overflow
          src_dst = N * G.src_indices.astype(np.int64) + G.dst_indices
          src_dst_T = G.src_indices + N * G.dst_indices.astype(np.int64)
          src_dst_new = cp.intersect1d(src_dst, src_dst_T)
          new_indices = cp.floor_divide(
              src_dst_new, N, dtype=index_dtype
          )
          mark_isolates[new_indices] = False
      else:
          mark_isolates[G.src_indices] = False
          if G.is_directed():
              mark_isolates[G.dst_indices] = False
      return mark_isolates
  
file_path: cugraph/python/nx-cugraph/nx_cugraph/algorithms/isolate.py
imports: from __future__ import annotations
  from typing import TYPE_CHECKING
  import cupy
  import numpy
  from nx_cugraph.convert import _to_graph
  from nx_cugraph.utils import index_dtype, networkx_algorithm
label_desc: Use image node_id 2 for calling a global function with example usage: _mark_isolates(G, symmetrize) and returns: mark_isolates