code: def sample(self, batch_size):
      mini_batch = random.sample(self.buffer, batch_size)
      (
          obs_batch,
          action_batch,
          reward_batch,
          next_obs_batch,
          done_batch,
      ) = ([], [], [], [], [])
  
      for experience in mini_batch:
          s, a, r, s_p, done = experience
          obs_batch.append(s)
          action_batch.append(a)
          reward_batch.append(r)
          next_obs_batch.append(s_p)
          done_batch.append(done)
  
      return (
          np.array(obs_batch).astype("float32"),
          np.array(action_batch).astype("float32"),
          np.array(reward_batch).astype("float32"),
          np.array(next_obs_batch).astype("float32"),
          np.array(done_batch).astype("float32"),
      )
  
file_path: PARL/examples/tutorials/homework/lesson3/dqn_mountaincar/replay_memory.py
imports: import random
  import collections
  import numpy
label_desc: Use image node_id 3 for calling the ReplayMemory obj's underlying member method code with example usage: obj.sample(batch_size) and returns: np,  np,  np,  np,  np