2016-09-25 7 views
1

私は、行列のどの列が特定の行に関連しているかを示す、サイズ(N、d)のベクトルとサイズNのベクトルを持っているとします。どのように行列の値と関連する列によって与えられるサイズNのベクトルを返すことができますか?私が何かしようとしたPythonでループせずに、各行の指定された列を使用して行列からベクトルを作成する方法はありますか?

M = [[ 2, 4, 1, 8], 
    [3, 5, 7, 1], 
    [2, 5, 3, 9], 
    [1, 2, 3, 4]] 
V = [2, 1, 0, 1] 

例えば

M[:,V] 

をこれは

NXN

である行列を返し伴わないこの書式を設定する簡単な方法があります私は次のベクトルを得ることができるようにfor-loopを書く:

V' = [1,5,2,2] 
0行番号をインデックスと列のための Vため

答えて

1

使用np.arange(len(V))

In [110]: M = [[ 2, 4, 1, 8], 
    .....:  [3, 5, 7, 1], 
    .....:  [2, 5, 3, 9], 
    .....:  [1, 2, 3, 4]] 

In [111]: V = [2, 1, 0, 1] 

In [112]: 

In [112]: M = np.array(M) 

In [113]: M[np.arange(len(V)),V] 
Out[113]: array([1, 5, 2, 2]) 
関連する問題