class_docstr: The Split class represents the conditioned data at any point in the decision tree
  It contains the logic for:
  
   - Maintaining a record of which rows of the covariate matrix are in the split
   - Being able to easily access a `Data` object with the relevant rows
   - Applying `SplitConditions` to further break up the data
code: def data(self):
      return self._data
  
file_path: imodels/imodels/experimental/bartpy/split.py
imports: from copy import deepcopy
  from typing import List, Optional
  import numpy
  from .data import Data
  from .splitcondition import CombinedCondition, SplitCondition
label_desc: Use image node_id 2 for calling the Split obj's underlying member method code with example usage: obj.data() and returns: self