2016-06-11 14 views
1

I iは、インデックスを実行しているplaces[i]インデックス内kの各列に1を割り当てる行う方法places = np.random.random_integers(0, M-1, N)と呼ば範囲サイズN0, 1 .., M-1における2Dアレイk = np.zeros((M, N))およびインデックスのリストが与えられます。 私は割り当て2Dアレイ

例のpythonコンパクトなスタイルで、任意のループせずにそれを達成したいと思います。そして、

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

k = [1, 1, 0, 0, 0 
    0, 0, 1, 1, 0 
    0, 0, 0, 0, 1] 

答えて

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