Я пытаюсь изменить одно измерение массива numpy, используя другой массив.Однако, я получаю довольно неинтуитивные результаты, если не использую цикл for.
state = np.zeros((7, 7, 1))
state2 = np.zeros((7, 7, 1))
sample = np.array([ 1, 2, 0, 1, 2, 1, 0])
b = np.ones((7, 1))
time_index = 0
state[np.arange(state.shape[0]), time_index + sample[:, np.newaxis], 0] += b
for i, s in enumerate(sample):
state2[i, time_index + s, 0] += b[i]
Я ожидал np.array_equal(state, state2) == True
, однако state
, похоже, не выполняет то, что я ожидаю.Как бы я воссоздал state2
векторизованным способом?