Я пытаюсь написать класс регрессии дерева решений с нуля. Я пишу его, чтобы получить данные в форме NumPy ndarray. Я не планирую использовать его ни для чего, кроме самообучения, но мне стало интересно, как scikit-learn так легко справляется с обоими одновременно. Т.е. он будет соответствовать модели данных, которые являются либо ndarray, либо списком, либо объектом dataframe / series.
Есть ли простое объяснение такой надежной обработки множества различных типов объектов?