Ich habe ein 1D-Array A = [a, b, c ...] (Länge N_A) und ein 3D-Array T Form (N_A, N_B, N_A). A soll eine diagonale Matrix von N_A nach N_A darstellen.Multiplizieren Array mit Diagonalmatrix als Vektor gespeichert
Ich möchte Kontraktionen von A mit T durchführen, ohne A zu dichten Speicher zu fördern. Insbesondere würde Ich mag
np.einsum('ij, ikl', A, T)
und
np.einsum('ikl, lm', T, A)
ist es möglich, zu tun, solche Dinge zu tun, während eine spärliche halten?
Hinweis Diese Frage ist ähnlich wie
dot product with diagonal matrix, without creating it full matrix
aber nicht identisch, da es mir nicht klar ist, wie ein Indexmuster zu komplizierteren verallgemeinert.
Ein bisschen wie schwarze Magie, aber hey, es funktioniert! Vielen Dank! – AGML