code: def symarray(prefix, shape, **kwargs):  # pragma: no cover
      r"""Create a numpy ndarray of symbols (as an object array).
  
      The created symbols are named ``prefix_i1_i2_``...  You should thus provide a
      non-empty prefix if you want your symbols to be unique for different output
      arrays, as SymPy symbols with identical names are the same object.
  
      Parameters
      ----------
  
      prefix : string
        A prefix prepended to the name of every symbol.
  
      shape : int or tuple
        Shape of the created array.  If an int, the array is one-dimensional; for
        more than one dimension the shape must be a tuple.
  
      \*\*kwargs : dict
        keyword arguments passed on to Symbol
  
      Examples
      ========
      These doctests require numpy.
  
      >>> from sympy import symarray
      >>> symarray('', 3)
      [_0 _1 _2]
  
      If you want multiple symarrays to contain distinct symbols, you *must*
      provide unique prefixes:
  
      >>> a = symarray('', 3)
      >>> b = symarray('', 3)
      >>> a[0] == b[0]
      True
      >>> a = symarray('a', 3)
      >>> b = symarray('b', 3)
      >>> a[0] == b[0]
      False
  
      Creating symarrays with a prefix:
  
      >>> symarray('a', 3)
      [a_0 a_1 a_2]
  
      For more than one dimension, the shape must be given as a tuple:
  
      >>> symarray('a', (2, 3))
      [[a_0_0 a_0_1 a_0_2]
       [a_1_0 a_1_1 a_1_2]]
      >>> symarray('a', (2, 3, 2))
      [[[a_0_0_0 a_0_0_1]
        [a_0_1_0 a_0_1_1]
        [a_0_2_0 a_0_2_1]]
      <BLANKLINE>
       [[a_1_0_0 a_1_0_1]
        [a_1_1_0 a_1_1_1]
        [a_1_2_0 a_1_2_1]]]
  
      For setting assumptions of the underlying Symbols:
  
      >>> [s.is_real for s in symarray('a', 2, real=True)]
      [True, True]
      """
      from numpy import empty, ndindex
  
      arr = empty(shape, dtype=object)
      for index in ndindex(shape):
          arr[index] = Symbol(
              "%s_%s" % (prefix, "_".join(map(str, index))), **kwargs
          )
      return arr
  
imports: import random
  from sympy.core.basic import Basic
  from sympy.core.singleton import S
  from sympy.core.symbol import Symbol
  from sympy.core.sympify import sympify
  from sympy.functions.elementary.trigonometric import cos, sin
  from sympy.utilities.decorator import doctest_depends_on
  from sympy.utilities.exceptions import sympy_deprecation_warning
  from sympy.utilities.iterables import is_sequence
  from .exceptions import ShapeError
  from .decompositions import _cholesky, _LDLdecomposition
  from .matrixbase import MatrixBase
  from .repmatrix import MutableRepMatrix, RepMatrix
  from .solvers import _lower_triangular_solve, _upper_triangular_solve
label_desc: Use image node_id 12 for calling a global function with example usage: symarray(prefix, shape) and returns: arr