2016-04-02 7 views
1

私はこの問題を解決しようと壁に頭を叩いています。ここでNumPy:関数が必要な場所:f(ターゲット配列、添字の配列、ある数字) - >添え字のあるターゲット配列

は一例です:

A = [[3, 1, 2], 
    [1, 4, 3], 
    [8, 9, 6]] (the target array) 

B = [[0], 
    [1], 
    [1]] (the array of indicies) 

aNumber = 1.2222 (some number) 

私はこの結果をベクトル化のアプローチをやろうとしています:

A = [[1.2222, 1, 2], 
    [1, 1.2222, 3], 
    [8, 1.2222, 6]] 

そのは、AにとっBが参照するインデックスに行くと、それを置き換えますaNumberで[B] aNumber = ...しかし、それははい、私はforループでこれを達成することができ、達成

にしようと何イムのベクトル化のアプローチを表すが、配列があります:

は、これは明らかに間違っていますこれを放送する方法?

ありがとうございました!

答えて

2

あなたは両方の軸のための指標を提供する必要があります。

A[np.arange(len(A)), B.flat] = aNumber 
+0

ありがとうございました!これは私のために働いた!なぜこれがうまくいかないのか教えてください。A [:、B.flat] = aNumber? – Moose

+0

@Mose - 構文 'A [:, [0,1,1]]'は列全体を選択します。最初の列と2回目の列。行ごとに1つの値を設定するために使用することはできません。あなたのやり方も意味がありますが、それはちょうどnumpyのデザイナーがそれを実装した方法ではありません:) –

関連する問題