Python 在索引向量中指定2d数组

Python 在索引向量中指定2d数组,python,Python,给定二维数组k=np.zero((M,N))和大小N的0,1..,M-1范围内的索引列表称为places=np.random.random_整数(0,M-1,N)如何在places[I]索引中的k的每列中分配1。 我希望以python紧凑的风格实现这一点,并且不需要任何循环 示例: N = 5, M =3 places= 0, 0, 1, 1, 2 然后: 完整代码: import numpy as np N = 5 M=3 #places = np.random.random_integer

给定二维数组
k=np.zero((M,N))
和大小
N
0,1..,M-1
范围内的索引列表称为
places=np.random.random_整数(0,M-1,N)
如何在
places[I]
索引中的
k
的每列中分配1。 我希望以python紧凑的风格实现这一点,并且不需要任何循环

示例:

N = 5, M =3
places= 0, 0, 1, 1, 2
然后:

完整代码:

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.]]
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.]]