在索引向量中分配2d数组

时间:2016-06-11 14:57:29

标签: python

给定2d数组k = np.zeros((M, N))以及名为0, 1 .., M-1的{​​{1}}大小N范围内的索引列表如何在places = np.random.random_integers(0, M-1, N)的每列中分配1在我运行索引的k索引中。 我想在python紧凑风格中实现它,没有任何循环

示例:

places[i]

然后:

N = 5, M =3
places= 0, 0, 1, 1, 2

1 个答案:

答案 0 :(得分:1)

rslt = np.zeros((M, N))
for i, v in enumerate(places): rslt[v,i]=1

完整代码:

import numpy as np
N = 5
M=3
#places = np.random.random_integers(0, M-1, N)
places= 0, 0, 1, 1, 2
rslt = np.zeros((M, N))
for i, v in enumerate(places): rslt[v,i]=1
print(rslt)

Out [34]:
[[ 1.  1.  0.  0.  0.]
 [ 0.  0.  1.  1.  0.]
 [ 0.  0.  0.  0.  1.]]