docstr: adj, features, y_train, y_val, y_test, train_mask, val_mask, test_mask
  y_train, y_val, y_test can merge to y
docstr_tok: ["adj",",","features",",","y_train",",","y_val",",","y_test",",","train_mask",",","val_mask",",","test_mask","y_train",",","y_val",",","y_test","can","merge","to","y"]
code: def preprocess_data(self):
      """
      adj, features, y_train, y_val, y_test, train_mask, val_mask, test_mask
      y_train, y_val, y_test can merge to y
      """
      g = self.graph.G
      look_back = self.graph.look_back_list
      self.features = np.vstack(
          [
              g.nodes[look_back[i]]["feature"]
              for i in range(g.number_of_nodes())
          ]
      )
      self.features = preprocess_features(self.features)
      self.build_label()
      self.build_train_val_test()
      adj = nx.adjacency_matrix(g)  # the type of graph
      self.support = [preprocess_adj(adj)]
  
file_path: OpenNE/src/openne/gcn/gcnAPI.py
imports: import numpy
  from .utils import *
  from .None import models
  import time
  import scipy.sparse
  import tensorflow
label_desc: Use image node_id 6 for calling the GCN obj's underlying member method code with example usage: obj.preprocess_data() without return types