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 _eval_derivative(self, wrt):
      from sympy.tensor.array.ndim_array import NDimArray
  
      if isinstance(wrt, Indexed) and wrt.base == self.base:
          if len(self.indices) != len(wrt.indices):
              msg = "Different # of indices: d({!s})/d({!s})".format(
                  self, wrt
              )
              raise IndexException(msg)
          result = S.One
          for index1, index2 in zip(self.indices, wrt.indices):
              result *= KroneckerDelta(index1, index2)
          return result
      elif isinstance(self.base, NDimArray):
          from sympy.tensor.array import derive_by_array
  
          return Indexed(
              derive_by_array(self.base, wrt), *self.args[1:]
          )
      else:
          if Tuple(self.indices).has(wrt):
              return S.NaN
          return S.Zero
  
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 5 for calling the Indexed obj's underlying member method code with example usage: obj._eval_derivative(wrt) and returns: result, Indexed, S, S