class_docstr: Implementation of the Copycat CNN attack from Rodrigues Correia-Silva et al. (2018).
  
  | Paper link: https://arxiv.org/abs/1806.05476
class_docstr_tok: ["Implementation","of","the","Copycat","CNN","attack","from","Rodrigues","Correia-Silva","et","al",".","(","2018",")",".","|","Paper","link",":","https",":","\/\/arxiv.org\/abs\/1806.05476"]
docstr: Select data to attack.
  
  :param x: An array with the source input to the victim classifier.
  :return: An array with the selected input to the victim classifier.
docstr_tok: ["Select","data","to","attack",".",":","param","x",":","An","array","with","the","source","input","to","the","victim","classifier",".",":","return",":","An","array","with","the","selected","input","to","the","victim","classifier","."]
code: def _select_data(self, x: np.ndarray) -> np.ndarray:
      """
      Select data to attack.
  
      :param x: An array with the source input to the victim classifier.
      :return: An array with the selected input to the victim classifier.
      """
      nb_stolen = np.minimum(self.nb_stolen, x.shape[0])
      rnd_index = np.random.choice(x.shape[0], nb_stolen, replace=False)
  
      return x[rnd_index].astype(ART_NUMPY_DTYPE)
  
file_path: adversarial-robustness-toolbox/art/attacks/extraction/copycat_cnn.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  from typing import Optional, TYPE_CHECKING
  import numpy
  from art.config import ART_NUMPY_DTYPE
  from art.attacks.attack import ExtractionAttack
  from art.estimators.estimator import BaseEstimator
  from art.estimators.classification.classifier import ClassifierMixin
  from art.utils import to_categorical
label_desc: Use image node_id 3 for calling the CopycatCNN obj's underlying member method code with example usage: obj._select_data(x) and returns: x