给定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
答案 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.]]