code: def select_action_key(self, next_action_arr, next_q_arr):
          '''
          Select action by Q(state, action).
  
          Args:
              next_action_arr:        `np.ndarray` of actions.
              next_q_arr:             `np.ndarray` of Q-Values.
  
          Retruns:
              `np.ndarray` of keys.
          '''
          epsilon_greedy_flag = bool(np.random.binomial(n=1, p=self.epsilon_greedy_rate))
          if epsilon_greedy_flag is False:
              key = np.random.randint(low=0, high=next_action_arr.shape[0])
          else:
              key = next_q_arr.argmax()
  
          return kef select_action_key(self, next_action_arr, next_q_arr):
          '''
          Select action by Q(state, action).
  
          Args:
              next_action_arr:        `np.ndarray` of actions.
              next_q_arr:             `np.ndarray` of Q-Values.
  
          Retruns:
              `np.ndarray` of keys.
          '''
          epsilon_greedy_flag = bool(np.random.binomial(n=1, p=self.epsilon_greedy_rate))
          if epsilon_greedy_flag is False:
              key = np.random.randint(low=0, high=next_action_arr.shape[0])
          else:
              key = next_q_arr.argmax()
  
          return key
docs: Select action by Q(state, action).
  
          Args:
              next_action_arr:        `np.ndarray` of actions.
              next_q_arr:             `np.ndarray` of Q-Values.
  
          Retruns:
              `np.ndarray` of keys.