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