2016-08-02 4 views
3

У меня есть следующий список индексов [2 4 3 4], которые соответствуют моим целевым показателям. Я создаю матрицу нулей со следующей строкой кода targets = np.zeros((features.shape[0], 5)). Им интересно, если его можно разрезать таким образом, чтобы я мог обновить конкретные показатели сразу и установить эти значения в 1 без цикла, в идеале матрица будет выглядеть
([0,0,1,0,0], [0,0,0,0,1], [0,0,0,1,0], [0,0,0,0,1])Обновление конкретных столбцов матрицы числовой

ответ

4

Я считаю, что вы можете сделать что-то вроде этого:

targets = np.zeros((4, 5)) 
ind = [2, 4, 3, 4] 
targets[np.arange(0, 4), ind] = 1 

Вот результат:

array([[ 0., 0., 1., 0., 0.], 
     [ 0., 0., 0., 0., 1.], 
     [ 0., 0., 0., 1., 0.], 
     [ 0., 0., 0., 0., 1.]]) 
Смежные вопросы