行ごとに異なるインデックスに” 1 ”を持つ numpy 配列を作成するには
タイトルのような配列を作成したいのですが、効率の良いプログラムが思い浮かばないので
質問させてください。
作成したい配列は、例えば0行目は 0, 2, 4 列目、1行目は 1, 3, 4 列目成分に"1"を持ちそれ以外は"0"を持つといった配列をpythonのfor文を用いずに作成したいです。例で上げた行列は、
array = [[1,0,1,0,1],
[0,1,0,1,1]]
といった行列です。各行でどの列成分に"1"を配置するかを指定する行×1の個数のサイズ
(上の例で言えば 2×3 の行列)はすでにあるものとして、効率よく配列を作成する方法があれば
教えていただきたいです。
for文を使った場合のコードは以下のようになりました。
import numpy as np
list_1_index = np.array[[0,2,4],[1,3,4]]
array_0_1 = np.zeros(2*5).reshape(2,5)
for i in range(len(list_1_index)):
array_0_1[i,list_1_index[i,:]] = 1