3
我試圖提取一個由x
中包含的一組索引指定的numpy陣列y
的子集,同時仍然留下一些y
指數免費。舉一個具體的例子。讓y
已形狀(10,10,10,3)
而x
已形狀(7,7,3)
。 x
的最後一個維度對應於指數信息y
的前三個維度。也就是說,我想一個高效的切割操作的結果相同,因爲這:切片numpy陣列與其他陣列
for i in x.shape[0]:
for j in x.shape[1]:
z[i,j,:] = y[x[i,j,0],x[i,j,1],x[i,j,2],:]
理想的答案應該無論工作x
維數的。
一般而言,y
將N+1
維,具有形狀(...,N)
,而x
將Q+1
維具有形狀(...,N)
,其結果將具有相同的形狀x
。
這樣做的動機是從矢量場中提取矢量子集。
第一個版本我想要做什麼,但只有當y'的'維數是事先知道的。第二個是一般的,但可悲的是似乎很慢(在我的一個測試中慢了20倍)。 – amaurea