我想從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]]])
期望的結果將是:
[[3,3],[4,3],[2,1]]
這是偉大的,只是想知道,有沒有也是一種方式與np.choose做呢? – Nickpick
@nickpick對不起,我沒有使用'np.choose',所以不能幫助你。我只是喜歡直接做這件事。 – Divakar
有道理。你似乎是一個花哨索引專家。你有什麼文獻可以推薦? – Nickpick