class_docstr: Appends the Local Degree Profile (LDP) from the `"A Simple yet
  Effective Baseline for Non-attribute Graph Classification"
  <https://arxiv.org/abs/1811.03508>`_ paper
  
  .. math::
      \mathbf{x}_i = \mathbf{x}_i \, \Vert \, (\deg(i), \min(DN(i)),
      \max(DN(i)), \textrm{mean}(DN(i)), \textrm{std}(DN(i)))
  
  to the node features, where :math:`DN(i) = \{ \deg(j) \mid j \in
  \mathcal{N}(i) \}`.
code: def _extract_nodes_feature(
      self, data: autogl.data.Data
  ) -> torch.Tensor:
      row, col = data.edge_index
      if data.x is not None and isinstance(data.x, torch.Tensor):
          N = data.x.size(0)
      else:
          N = torch.max(data.edge_index).item() + 1
  
      deg = degree(row, N, dtype=torch.float)
      deg_col = deg[col]
  
      min_deg, _ = scatter_min(deg_col, row, dim_size=N)
      min_deg[min_deg > 10000] = 0
      max_deg, _ = scatter_max(deg_col, row, dim_size=N)
      max_deg[max_deg < -10000] = 0
      mean_deg = scatter_mean(deg_col, row, dim_size=N)
      std_deg = scatter_std(deg_col, row, dim_size=N)
  
      x = torch.stack([deg, min_deg, max_deg, mean_deg, std_deg], dim=1)
      return x
  
file_path: AutoGL/autogl/module/preprocessing/feature_engineering/_generators/_pyg.py
imports: import torch.nn.functional
  import autogl
  from ._basic import BaseFeatureGenerator
  from ._pyg_impl import degree, scatter_min, scatter_max, scatter_mean, scatter_std
  from ..._data_preprocessor_registry import DataPreprocessorUniversalRegistry
label_desc: Use image node_id 1 for calling the LocalDegreeProfileGenerator obj's underlying member method code with example usage: obj._extract_nodes_feature(data) and returns: x