有沒有簡單的方法來使用索引數組索引沿最後維度的numpy多維數組?例如,形狀爲(10, 10, 20)
的數組a
。假設我有一個形狀爲(10, 10)
的索引b
的數組,因此結果將爲c[i, j] = a[i, j, b[i, j]]
。沿着最後維度的索引numpy nd數組
我試過下面的例子:
a = np.ones((10, 10, 20))
b = np.tile(np.arange(10) + 10, (10, 1))
c = a[b]
但是,這並不工作,因爲它然後嘗試指數像a[b[i, j], b[i, j]]
,這是不一樣的a[i, j, b[i, j]]
。等等。有沒有一個簡單的方法來做到這一點,而不訴諸於循環?
只是爲了確保我的理解正確,你想'C [I,J] = A [1, j,b [i,j]]' – mgilson 2014-12-03 17:00:18
@mgilson是的。應該做得更清楚。 – tiago 2014-12-03 18:19:41
這通常是'c = a [np.arange(b.shape [0]),np.arange(b.shape [1]),b]'完成的,但我希望有更好的方法。 – 2014-12-03 20:31:48