Я использую Python и Numpy для анализа данных.
У меня есть большая 3D-матрица (NxNxN), где каждая ячейка снова матрица, на этот раз матрица 3x3. Вызывая матрицу data
, она выглядит так:
data[N,N,N,3,3]
Мне нужно найти собственные значения всех матриц 3x3, и для этого я использую подпрограмму Numpy eigval
, но это занимает много времени делать. Прямо сейчас я в основном делаю следующее:
for i in range(N):
for j in range(N):
for k in range(N):
a = np.linalg.eigvals(data[i,j,k,:,:])
Для N = 256 это занимает около часа. Есть идеи, как сделать это более эффективным?
Большое спасибо за любые предложения!