python - 从索引矩阵填充矩阵

标签 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 中执行此操作?

最佳答案

使用advanced-indexing初始化后 -

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

关于python - 从索引矩阵填充矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45108775/

相关文章:

python - 如何使用循环创建类的随机多个实例?

python - 2道数学题

python - Numpy 求复共轭

python - Pandas 数据帧 : Getting row indices from criteria 1, 按标准 2 排序

python - 创建张量的欧式距离矩阵

matlab - 将矩阵的每一列乘以另一个矩阵

python - 如何在每行末尾添加一个\n

python - 无法通过端口 8000 访问图像(开发中)

python - 扩展 numpy 掩码

c++ - 有没有办法在opencv c++中检查矩阵中的数据