class_docstr: Base data structure of SingleData and MultiData.
  
  NOTE:
  - For performance issue, only **np.floating** is supported in the underlayer data !!!
  - Boolean based on np.floating is also supported. Here are some examples
  
  .. code-block:: python
  
      np.array([ np.nan]).any() -> True
      np.array([ np.nan]).all() -> True
      np.array([1. , 0.]).any() -> True
      np.array([1. , 0.]).all() -> False
class_docstr_tok: ["Base","data","structure","of","SingleData","and","MultiData",".","NOTE",":","-","For","performance","issue",",","only","*","*","np.floating","*","*","is","supported","in","the","underlayer","data","!","!","!","-","Boolean","based","on","np.floating","is","also","supported",".","Here","are","some","examples","..","code-block",":",":","python","np.array","(","[","np.nan","]",")",".any","(",")","-",">","True","np.array","(","[","np.nan","]",")",".all","(",")","-",">","True","np.array","(","[","1.",",","0",".","]",")",".any","(",")","-",">","True","np.array","(","[","1.",",","0",".","]",")",".all","(",")","-",">","False"]
docstr: Align all indices of `other` to `self` before performing the arithmetic operations.
  This function will return a new IndexData rather than changing data in `other` inplace
  
  Parameters
  ----------
  other : "IndexData"
      the index in `other` is to be changed
  
  Returns
  -------
  IndexData:
      the data in `other` with index aligned to `self`
docstr_tok: ["Align","all","indices","of","`","other","`","to","`","self","`","before","performing","the","arithmetic","operations",".","This","function","will","return","a","new","IndexData","rather","than","changing","data","in","`","other","`","inplace","Parameters","--","--","--","--","--","other",":","``","IndexData","''","the","index","in","`","other","`","is","to","be","changed","Returns","--","--","--","-","IndexData",":","the","data","in","`","other","`","with","index","aligned","to","`","self","`"]
code: def _align_indices(self, other: "IndexData") -> "IndexData":
      """
      Align all indices of `other` to `self` before performing the arithmetic operations.
      This function will return a new IndexData rather than changing data in `other` inplace
  
      Parameters
      ----------
      other : "IndexData"
          the index in `other` is to be changed
  
      Returns
      -------
      IndexData:
          the data in `other` with index aligned to `self`
      """
      raise NotImplementedError(f"please implement _align_indices func")
  
imports: from __future__ import annotations
  from typing import Dict, Tuple, Union, Callable, List
  import bisect
  import numpy
  import pandas
label_desc: Use image node_id 7 for calling the IndexData obj's underlying member method code with example usage: obj._align_indices(other) without return types