code: def subject_body_extractor(posts):
      # construct object dtype array with two columns
      # first column = 'subject' and second column = 'body'
      features = np.empty(shape=(len(posts), 2), dtype=object)
      for i, text in enumerate(posts):
          # temporary variable `_` stores '\n\n'
          headers, _, body = text.partition("\n\n")
          # store body text in second column
          features[i, 1] = body
  
          prefix = "Subject:"
          sub = ""
          # save text after 'Subject:' in first column
          for line in headers.split("\n"):
              if line.startswith(prefix):
                  sub = line[len(prefix) :]
                  break
          features[i, 0] = sub
  
      return features
  
file_path: scikit-learn/examples/compose/plot_column_transformer.py
imports: import numpy
  from sklearn.compose import ColumnTransformer
  from sklearn.datasets import fetch_20newsgroups
  from sklearn.decomposition import PCA
  from sklearn.feature_extraction import DictVectorizer
  from sklearn.feature_extraction.text import TfidfVectorizer
  from sklearn.metrics import classification_report
  from sklearn.pipeline import Pipeline
  from sklearn.preprocessing import FunctionTransformer
  from sklearn.svm import LinearSVC
label_desc: Use image node_id 1 for calling a global function with example usage: subject_body_extractor(posts) and returns: features