class_docstr: Abstract base class for early time series classifiers.
  
  The base classifier specifies the methods and method signatures that all
  early classifiers have to implement. Attributes with an underscore suffix are set in
  the method fit.
  
  Parameters
  ----------
  classes_            : ndarray of class labels, possibly strings
  n_classes_          : integer, number of classes (length of classes_)
  fit_time_           : integer, time (in milliseconds) for fit to run.
  _class_dictionary   : dictionary mapping classes_ onto integers 0...n_classes_-1.
  _threads_to_use     : number of threads to use in fit as determined by n_jobs.
  state_info          : An array containing the state info for each decision in X.
class_docstr_tok: ["Abstract","base","class","for","early","time","series","classifiers",".","The","base","classifier","specifies","the","methods","and","method","signatures","that","all","early","classifiers","have","to","implement",".","Attributes","with","an","underscore","suffix","are","set","in","the","method","fit",".","Parameters","--","--","--","--","--","classes_",":","ndarray","of","class","labels",",","possibly","strings","n_classes_",":","integer",",","number","of","classes","(","length","of","classes_",")","fit_time_",":","integer",",","time","(","in","milliseconds",")","for","fit","to","run",".","_class_dictionary",":","dictionary","mapping","classes_","onto","integers","0","...","n_classes_-1",".","_threads_to_use",":","number","of","threads","to","use","in","fit","as","determined","by","n_jobs",".","state_info",":","An","array","containing","the","state","info","for","each","decision","in","X","."]
docstr: Convert X and y if necessary as a user convenience.
  
  Convert X to a 3D numpy array if already a 2D and convert y into an 1D numpy
  array if passed as a Series.
  
  Parameters
  ----------
  X : an object of a supported Panel mtype, or 2D numpy.ndarray
  y : np.ndarray or pd.Series
  
  Returns
  -------
  X: an object of a supported Panel mtype, numpy3D if X was a 2D numpy.ndarray
  y: np.ndarray
docstr_tok: ["Convert","X","and","y","if","necessary","as","a","user","convenience",".","Convert","X","to","a","3D","numpy","array","if","already","a","2D","and","convert","y","into","an","1D","numpy","array","if","passed","as","a","Series",".","Parameters","--","--","--","--","--","X",":","an","object","of","a","supported","Panel","mtype",",","or","2D","numpy.ndarray","y",":","np.ndarray","or","pd.Series","Returns","--","--","--","-","X",":","an","object","of","a","supported","Panel","mtype",",","numpy3D","if","X","was","a","2D","numpy.ndarray","y",":","np.ndarray"]
code: def _internal_convert(self, X, y=None):
      """Convert X and y if necessary as a user convenience.
  
      Convert X to a 3D numpy array if already a 2D and convert y into an 1D numpy
      array if passed as a Series.
  
      Parameters
      ----------
      X : an object of a supported Panel mtype, or 2D numpy.ndarray
      y : np.ndarray or pd.Series
  
      Returns
      -------
      X: an object of a supported Panel mtype, numpy3D if X was a 2D numpy.ndarray
      y: np.ndarray
      """
      _internal_convert = BaseClassifier._internal_convert
      return _internal_convert(self, X, y)
  
imports: from abc import ABC, abstractmethod
  from typing import Tuple
  import numpy
  from sktime.base import BaseEstimator
  from sktime.classification import BaseClassifier
label_desc: Use image node_id 25 for calling the BaseEarlyClassifier obj's underlying member method code with example usage: obj._internal_convert(X, y) and returns: _internal_convert