从索引矩阵填充矩阵

时间:2017-07-14 17:35:33

标签: python numpy matrix

我想从索引数组中填充矩阵:

import numpy as np

indx = [[0,1,2],[1,2,4],[0,1,3],[2,3,4],[0,3,4]]
x = np.zeros((5,5))
for i in range(5):
    x[i,indx[i]] = 1.

结果是:

array([[ 1.,  1.,  1.,  0.,  0.],
       [ 0.,  1.,  1.,  0.,  1.],
       [ 1.,  1.,  0.,  1.,  0.],
       [ 0.,  0.,  1.,  1.,  1.],
       [ 1.,  0.,  0.,  1.,  1.]])

根据需要。

问题

有没有办法在没有循环的纯python / numpy中执行此操作?

1 个答案:

答案 0 :(得分:4)

初始化后使用advanced-indexing -

x[np.arange(len(indx))[:,None], indx] = 1