3
比方說,我有一個四維陣列是如何替換4維數組中的值?
(600, 1, 3, 3)
如果你採取的第一個2元,他們可能看起來像這樣:
0 1 0
1 1 1
0 1 0
2 2 2
3 3 3
1 1 1
etc
我有一個包含我想一定權重的列表替換數組中的特定值。我的意圖是使用列表元素的索引匹配數組中的值。因此,這個名單
[0.1 1.1 1.2 1.3]
時對我的陣列應用將給這個結果:
0.1 1.1 0.1
1.1 1.1 1.1
0.1 1.1 0.1
1.2 1.2 1.2
1.3 1.3 1.3
1.1 1.1 1.1
etc
此方法將有權通過陣列的整個600組的元素來運行。
我可以做到這一點在使用for
環和array[array==x] = y
或np.place
笨重的方式,但我想避免一個循環,並可能使用一種方法,在一度將替換所有值。有沒有這樣的方法?
只需索引到數組版本:'np.asarray(vals)[idx]',其中'vals'是列表,'idx'是那些'4D'索引?或者使用'np.take(vals,idx)'在引擎蓋下進行數組轉換。 – Divakar
這可能工作,但你如何將它應用到4D陣列? – pepe
我剛纔告訴你 - idx是4D索引數組。 – Divakar