class_docstr: Represents a mathematical object with indices.
  
  >>> from sympy import Indexed, IndexedBase, Idx, symbols
  >>> i, j = symbols('i j', cls=Idx)
  >>> Indexed('A', i, j)
  A[i, j]
  
  It is recommended that ``Indexed`` objects be created by indexing ``IndexedBase``:
  ``IndexedBase('A')[i, j]`` instead of ``Indexed(IndexedBase('A'), i, j)``.
  
  >>> A = IndexedBase('A')
  >>> a_ij = A[i, j]           # Prefer this,
  >>> b_ij = Indexed(A, i, j)  # over this.
  >>> a_ij == b_ij
  True
class_docstr_tok: ["Represents","a","mathematical","object","with","indices",".",">",">",">","from","sympy","import","Indexed",",","IndexedBase",",","Idx",",","symbols",">",">",">","i",",","j","=","symbols","(","'","i","j","'",",","cls=Idx",")",">",">",">","Indexed","(","'","A","'",",","i",",","j",")","A","[","i",",","j","]","It","is","recommended","that","``","Indexed","``","objects","be","created","by","indexing","``","IndexedBase","``",":","``","IndexedBase","(","'","A","'",")","[","i",",","j","]","``","instead","of","``","Indexed","(","IndexedBase","(","'","A","'",")",",","i",",","j",")","``",".",">",">",">","A","=","IndexedBase","(","'","A","'",")",">",">",">","a_ij","=","A","[","i",",","j","]","#","Prefer","this",",",">",">",">","b_ij","=","Indexed","(","A",",","i",",","j",")","#","over","this",".",">",">",">","a_ij","==","b_ij","True"]
code: def __new__(cls, base, *args, **kw_args):
      from sympy.tensor.array.ndim_array import NDimArray
      from sympy.matrices.matrixbase import MatrixBase
  
      if not args:
          raise IndexException("Indexed needs at least one index.")
      if isinstance(base, (str, Symbol)):
          base = IndexedBase(base)
      elif not hasattr(base, "__getitem__") and not isinstance(
          base, IndexedBase
      ):
          raise TypeError(
              filldedent(
                  """
                  The base can only be replaced with a string, Symbol,
                  IndexedBase or an object with a method for getting
                  items (i.e. an object with a `__getitem__` method).
                  """
              )
          )
      args = list(map(sympify, args))
      if isinstance(
          base, (NDimArray, Iterable, Tuple, MatrixBase)
      ) and all(i.is_number for i in args):
          if len(args) == 1:
              return base[args[0]]
          else:
              return base[args]
  
      base = _sympify(base)
  
      obj = Expr.__new__(cls, base, *args, **kw_args)
  
      IndexedBase._set_assumptions(obj, base.assumptions0)
  
      return obj
  
imports: from collections.abc import Iterable
  from sympy.core.numbers import Number
  from sympy.core.assumptions import StdFactKB
  from sympy.core import Expr, Tuple, sympify, S
  from sympy.core.symbol import _filter_assumptions, Symbol
  from sympy.core.logic import fuzzy_bool, fuzzy_not
  from sympy.core.sympify import _sympify
  from sympy.functions.special.tensor_functions import KroneckerDelta
  from sympy.multipledispatch import dispatch
  from sympy.utilities.iterables import is_sequence, NotIterable
  from sympy.utilities.misc import filldedent
label_desc: Use image node_id 1 for calling the Indexed obj's underlying member method code with example usage: obj.__new__(cls, base) and returns: obj, base, base