suitCountsからmaxsuitで指定されたn番目の要素を選びたいと思います。私はmaxsuit配列をブロードキャストしたので、結果は得られましたが、目的のものは得られませんでした。私が概念的に間違ってやっている提案は感謝しています。私はnp.choose(self.maxsuit[:,:,None]-1, self.suitCounts)
の結果を理解していませんが、これは私が探しているものではありません。np.chooseはブロードキャスト後に希望の結果を与えません。
>>> self.maxsuit
Out[38]:
array([[3, 3],
[1, 1],
[1, 1]], dtype=int64)
>>> self.maxsuit[:,:,None]-1
Out[33]:
array([[[2],
[2]],
[[0],
[0]],
[[0],
[0]]], dtype=int64)
>>> self.suitCounts
Out[34]:
array([[[2, 1, 3, 0],
[1, 0, 3, 0]],
[[4, 1, 2, 0],
[3, 0, 3, 0]],
[[2, 2, 0, 0],
[1, 1, 1, 0]]])
>>> np.choose(self.maxsuit[:,:,None]-1, self.suitCounts)
Out[35]:
array([[[2, 2, 0, 0],
[1, 1, 1, 0]],
[[2, 1, 3, 0],
[1, 0, 3, 0]],
[[2, 1, 3, 0],
[1, 0, 3, 0]]])
望ましい結果は次のようになります。あなたがそうのような配列のインデックスにブロードキャスト方法をadvanced-indexing
を使用することができ
[[3,3],[4,3],[2,1]]
素晴らしいことだ、ただ不思議、np.chooseでそれを行う方法もあるのでしょうか? – Nickpick
@nickpick申し訳ありません。私は 'np.choose'をあまり使っていません。私はちょうどそれを直接的なやり方でやりたい。 – Divakar
意味があります。ファンシー索引作成の専門家のようです。あなたが推薦できる文献はありますか? – Nickpick