Нарезка Python, перемещение старых мест нарезки?

Я ранее получил:

self.memory = np.zeros((MEMORY_CAPACITY, s_dim * 2 + a_dim + 1), dtype=np.float32)  

но мне нужно было добавить переменную "сделано" в эту память, поэтому я сделал:

self.memory = np.zeros((MEMORY_CAPACITY, s_dim * 2 + a_dim + 2), dtype=np.float32)  

и теперь я добавил переменную "сделано" в памяти с:

def store_transition(self, s, a, r, s_, done):
    transition = np.hstack((s, a, [r], s_, done))
    index = self.pointer % MEMORY_CAPACITY  # replace the old memory with new memory
    self.memory[index, :] = transition

так что теперь он добавлен, но мне также нужно вернуть его в другую мою функцию:

    indices = np.random.choice(MEMORY_CAPACITY, size=BATCH_SIZE)
    bt = self.memory[indices, :]
    bs = bt[:, :self.s_dim]
    ba = bt[:, self.s_dim: self.s_dim + self.a_dim]
    br = bt[:, -self.s_dim - 1: -self.s_dim]
    bs_ = bt[:, -self.s_dim:]
    bd = bt[:, here should be done]

поэтому bd должен содержать переменную done, я лично думаю о том, что должно быть:

 bd = bt[:, -1:] 

но я не уверен в этом....

Более того, некоторые старые размещения должны измениться правильно, потому что массив стал больше, но я понятия не имею, что, что и как....

Кто-нибудь, кто может мне помочь?

январь

1 ответ

Не совсем уверен, что ты имеешь в виду в части, кроме того, некоторые старые...

Но синтаксис нарезки кусочков работает. Смотрите этот пример:

>>> x = np.random.randn(5, 6)
>>> x.shape
(5, 6)
>>> x
array([[-0.66028509, -0.03515113,  0.54097151,  1.64021491,  1.55407344,
        -1.88961789],
       [-0.73310028, -0.38558638,  0.33200719, -0.142615  ,  0.57087033,
        -0.67726621],
       [ 0.32542737, -1.13508259,  1.58907859,  0.94438687,  0.33949198,
         1.52579515],
       [ 0.59211854,  0.39976888,  0.13617402,  0.57993582, -0.25274804,
        -1.15533191],
       [ 0.21203948,  0.72443024, -1.74406077,  0.97494208,  0.12653774,
        -0.00668887]])
>>> x[:, :-1]
array([[-0.66028509, -0.03515113,  0.54097151,  1.64021491,  1.55407344],
       [-0.73310028, -0.38558638,  0.33200719, -0.142615  ,  0.57087033],
       [ 0.32542737, -1.13508259,  1.58907859,  0.94438687,  0.33949198],
       [ 0.59211854,  0.39976888,  0.13617402,  0.57993582, -0.25274804],
       [ 0.21203948,  0.72443024, -1.74406077,  0.97494208,  0.12653774]])
>>> x[:, :-1].shape
(5, 5)
>>> x[:, -1:]
array([[-1.88961789],
       [-0.67726621],
       [ 1.52579515],
       [-1.15533191],
       [-0.00668887]])
>>> x[:, -1:].shape
(5, 1)
Другие вопросы по тегам