2
我有形狀(n,n)的矩陣A和形狀(p,n)的另一個矩陣b。我需要一個矩陣C,使得我目前在做在沒有明確複製的情況下使用Einsum
C[i] = (A * b[i, np.newaxis, :]) * b[i, :, np.newaxis]
,通過做np.matlib.repmat(A),然後使用np.einsum如下
A1 = np.matlib.repmat(A, p, 1).reshape(p, n, n)
C = np.einsum('ijk, ij..., ik... -> ijk', A1, b, b)
但我做不到看到創建A1會浪費資源,因爲它只是反覆使用相同的值。無論如何,我可以做到這一點,而無需創建中間矩陣A1?
太謝謝你了! – Aditya369
爲了沿着軸1求和,我只需要使用'ij,kij,kij - > kj'對嗎? – Aditya369
@ Aditya369沒錯! – Divakar