class_docstr: Data class for input data for the nodes
      
class_docstr_tok: ["Data","class","for","input","data","for","the","nodes"]
code: def get_not_encoded_data(self):
      new_features, new_features_names = None, None
      new_num_idx, new_cat_idx = None, None
      num_features, cat_features = None, None
      num_features_names, cat_features_names = None, None
  
      # Checking numerical data exists
      if self.numerical_idx:
          num_features = self.features[:, self.numerical_idx]
  
          if self.features_names is not None and np.size(
              self.features_names
          ):
              num_features_names = self.features_names[
                  self.numerical_idx
              ]
          else:
              num_features_names = np.array(
                  [
                      f"num_feature_{i}"
                      for i in range(1, num_features.shape[1] + 1)
                  ]
              )
  
      # Checking categorical data exists
      if self.categorical_idx:
          cat_features = self.categorical_features
  
          if self.features_names is not None and np.size(
              self.features_names
          ):
              cat_features_names = self.features_names[
                  self.categorical_idx
              ]
          else:
              cat_features_names = np.array(
                  [
                      f"cat_feature_{i}"
                      for i in range(1, cat_features.shape[1] + 1)
                  ]
              )
  
      if num_features is not None and cat_features is not None:
          new_features = np.hstack((num_features, cat_features))
          new_features_names = np.hstack(
              (num_features_names, cat_features_names)
          )
          new_features_idx = np.array(range(new_features.shape[1]))
          new_num_idx = new_features_idx[: num_features.shape[1]]
          new_cat_idx = new_features_idx[-cat_features.shape[1] :]
  
      elif cat_features is not None:
          new_features = cat_features
          new_features_names = cat_features_names
          new_cat_idx = np.array(range(new_features.shape[1]))
  
      elif num_features is not None:
          new_features = num_features
          new_features_names = num_features_names
          new_num_idx = np.array(range(new_features.shape[1]))
      else:
          raise ValueError("There is no features")
  
      return InputData(
          idx=self.idx,
          features=new_features,
          features_names=new_features_names,
          numerical_idx=new_num_idx,
          categorical_idx=new_cat_idx,
          target=self.target,
          task=self.task,
          data_type=self.data_type,
      )
  
imports: from __future__ import annotations
  import glob
  import os
  from copy import copy, deepcopy
  from dataclasses import dataclass, field
  from typing import Any, Iterable, List, Optional, Tuple, Union
  import numpy
  import pandas
  from golem.core.log import default_log
  from golem.utilities.requirements_notificator import warn_requirement
  from fedot.core.data.array_utilities import atleast_2d
  from fedot.core.data.load_data import JSONBatchLoader, TextBatchLoader
  from fedot.core.data.supplementary_data import SupplementaryData
  from fedot.core.repository.dataset_types import DataTypesEnum
  from fedot.core.repository.tasks import Task, TaskTypesEnum
label_desc: Use image node_id 10 for calling the InputData obj's underlying member method code with example usage: obj.get_not_encoded_data() and returns: InputData