code: def _split_state(self, obs: np.ndarray):
      assert obs.shape == (3, self.num_arms), f"{obs.shape}."
      dense_val = torch.tensor(obs[0, :]).view(1, self.num_arms)
      id_list_val = (
          torch.tensor(obs[1, :])
          .nonzero(as_tuple=True)[0]
          .to(torch.long)
      )
      id_score_list_val = torch.tensor(obs[2, :])
      return dense_val, id_list_val, id_score_list_val
  
imports: import random
  import gym
  import numpy
  import reagent.core.types
  import torch
  from reagent.core.dataclasses import dataclass
  from reagent.core.parameters import NormalizationData, NormalizationKey
  from reagent.gym.envs.env_wrapper import EnvWrapper
  from reagent.gym.normalizers import only_continuous_normalizer
label_desc: Use image node_id 2 for calling the ChangingArms obj's underlying member method code with example usage: obj._split_state(obs) and returns: dense_val,  id_list_val,  id_score_list_val