1
我試圖從一個3d numpy數組中提取值。此刻,我可以執行以下操作:用二維數組對三維numpy數組進行索引
newmesh.shape
(40,40,40)
newmesh[2,5,6]
6
但是,如果我嘗試使用數組索引它,並不如預期的結果;
newmesh[np.array([2,5,6])].shape
(3, 42, 42)
我試過使用np.take,但它產生以下;
np.take(newmesh,np.array([2,5,6]))
[-1 -1 -1]
任何想法爲什麼會發生這種情況?我的目標是輸入一個(n,3)數組,其中每行對應於newmesh的值,即輸入一個(n,3)數組將返回一個長度爲n的1d數組。
由於這是非常有益的。你明白我爲什麼做錯了嗎? – Jack
@Jack沒有任何逗號,在NumPy數組中,你只能用'newmesh [np.array([2,5,6])]'索引到第一個dim,它會從第一個dim選擇三個elem,一切從昏暗的其餘部分。所以,它本質上是:'newmesh [np.array([2,5,6]),:,:]'。 – Divakar