Эффективная итерация по 3D-массиву?

Я использую 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 это занимает около часа. Есть идеи, как сделать это более эффективным?

Большое спасибо за любые предложения!

5
задан digitaldingo 7 August 2011 в 15:55
поделиться