Berechnen Sie Eigenwerte für Matrix, wenn jedes Element ein disjunktes Array ist
Posted: 31 Aug 2025, 14:47
Ich habe eine 2x2 -Kovarianzmatrix, die als 3 Disjoint -Arrays dargestellt wird, was 3 NX1 -Arrays bedeutet. Der N ist dieser Fall, so dass die Kovarianz einiger Messungen im Laufe der Zeit. Ich möchte die Eigenwerte bei jedem Zeitschritt berechnen können, ohne die einzelnen Arrays in einer quadratischen Matrix zu kopieren. Das Kopieren kann langsam und unerschwinglich langsam sein. Ich habe versucht, nach mehreren disjunkten Arrays zu suchen, aber es scheint nicht, dass etwas existiert.
Ich bin für Numba geöffnet, die Numpy -Dokumente für diese Routine. JIT-kompilierte Routine? Würde es mir die Kopie retten?
Code: Select all
import numpy as np
A = np.random.random([2,2])
cov = np.dot(A, A.T)
cov[1,0] = 0
np.linalg.eigvalsh(cov, "U")
Out[24]: array([0.16933861, 1.38188202])
# what I really have in memory are these,
# can I compute the eigenvalues with numpy without copy?
cov_00 = np.array([cov[0,0]])
cov_01 = np.array([cov[0,1]])
cov_11 = np.array([cov[1,1]])