更改一些numpy的陣列列的我有一個2D numpy的陣列,並且我想執行以下操作:根據邏輯條件
對於陣列中的每一列這是一系列的非遞減值,替換這一列有一列的差異(也就是說,每個條目是前兩個之間的差異)。
每隔一列保持不變(除了第一行被刪除以適應差異列的尺寸)。
例如,在下面的矩陣:
[ [1,1,1,2,3,4]
[1,3,4,3,4,5]
[1,7,3,4,2,7] ]
的差異矩陣是:
[ [0,2,3,1,1,1]
[0,4,-1,1,-1,2] ]
並由此具有降低的值的第三和第五列將保持不變,而其它列用差異列替換,結果爲:
[ [0,2,4,1,4,1]
[0,4,3,1,2,2] ]
我試了一下像這樣的事情:
tempX = np.diff(X, axis = 0).transpose()
return np.where(tempX >= 0, tempX, X[1:].transpose())
但是np.where中的條件是按元素進行的,而不是針對每列(或行)進行的。我怎樣才能改變這種狀況?
有沒有更有效的方法來實現這個?
你可以使用一個更大的數組作爲樣本和更多的數字? – Divakar
您的示例中存在拼寫錯誤很難理解。 ;)我想,它應該是「將被改爲'[[0,2,1] [0,4,3]]」,對嗎? – nostradamus
我改變了這個例子,我希望現在更清楚嗎? – keren42