class_docstr: Implementation of the AbstractAggregator interface for data point selection.
  
  DataPointSelector differs from DataAggregator in that they don't aggregate the data
  (e.g., mean) but instead select data points (e.g., first, last, min, max, etc ...).
  As such, the `_arg_downsample` method returns the index positions of the selected
  data points.
  
  This class utilizes the `arg_downsample` method to compute the index positions.
docstr: Compute the index positions for the downsampled representation.
  
  Parameters
  ----------
  x, y: np.ndarray
      The x and y data of the to-be-aggregated series.
      The x array is optional (i.e., if only 1 array is passed, it is assumed to
      be the y array).
      The array(s) must be 1-dimensional, and have the same length (if x is
      passed).
      These cannot be passed as keyword arguments, as they are positional-only.
  n_out: int
      The number of samples which the downsampled series should contain.
      This should be passed as a keyword argument.
  
  Returns
  -------
  np.ndarray
      The index positions of the selected data points.
docstr_tok: ["Compute","the","index","positions","for","the","downsampled","representation",".","Parameters","--","--","--","--","--","x",",","y",":","np.ndarray","The","x","and","y","data","of","the","to-be-aggregated","series",".","The","x","array","is","optional","(","i.e.",",","if","only","1","array","is","passed",",","it","is","assumed","to","be","the","y","array",")",".","The","array","(","s",")","must","be","1-dimensional",",","and","have","the","same","length","(","if","x","is","passed",")",".","These","can","not","be","passed","as","keyword","arguments",",","as","they","are","positional-only",".","n_out",":","int","The","number","of","samples","which","the","downsampled","series","should","contain",".","This","should","be","passed","as","a","keyword","argument",".","Returns","--","--","--","-","np.ndarray","The","index","positions","of","the","selected","data","points","."]
code: def arg_downsample(
      self,
      *args,
      n_out: int,
  ) -> np.ndarray:
      """Compute the index positions for the downsampled representation.
  
      Parameters
      ----------
      x, y: np.ndarray
          The x and y data of the to-be-aggregated series.
          The x array is optional (i.e., if only 1 array is passed, it is assumed to
          be the y array).
          The array(s) must be 1-dimensional, and have the same length (if x is
          passed).
          These cannot be passed as keyword arguments, as they are positional-only.
      n_out: int
          The number of samples which the downsampled series should contain.
          This should be passed as a keyword argument.
  
      Returns
      -------
      np.ndarray
          The index positions of the selected data points.
  
      """
      # Check n_out
      DataPointSelector._check_n_out(n_out)
  
      # Get x and y
      x, y = DataPointSelector._process_args(*args)
  
      # Check x and y
      self._check_x_y(x, y)
  
      if len(y) <= n_out:
          # Fewer samples than n_out -> return all indices
          return np.arange(len(y))
  
      # More samples that n_out -> perform data aggregation
      return self._arg_downsample(x=x, y=y, n_out=n_out)
  
imports: from __future__ import annotations
  import re
  from abc import ABC, abstractmethod
  from typing import List, Optional, Tuple
  import numpy
label_desc: Use image node_id 2 for calling the DataPointSelector obj's underlying member method code with example usage: obj.arg_downsample() and returns: self, np