docstr: :return: action
docstr_tok: [":","return",":","action"]
code: def best_action(self):
      """
      :return: action
      """
      child_score = self.child_Q() + self.mcts.c_puct * self.child_U()
      masked_child_score = child_score
      masked_child_score[~self.valid_actions] = -np.inf
      return np.argmax(masked_child_score)
  
imports: import collections
  import math
  import numpy
label_desc: Use image node_id 8 for calling the Node obj's underlying member method code with example usage: obj.best_action() and returns: np