функция, которая перебирает массив numpy - PullRequest
0 голосов
/ 25 мая 2018

Я написал простую функцию, которая перебирает массив с несколькими фиксированными индексами.

def compute_V(i,j,nA, nB,V):
    Vijkl = np.zeros((i,j,nA,nB))
    for k in range(nA):
        for l in range(nB):
            Vijkl[i,j,k,l] = V[i,j,k,l] + 3

    return Vijkl

Я получаю следующую ошибку: IndexError: индекс 1 выходит за пределы оси 0 с размером 1

Что я делаю не так?

Матрица V имеет форму: (1, 2, 1, 2) и выглядит так:

[[[[-0.00009 -0.00001]]

  [[-0.00001 -0.00001]]]] 

i = 0, j = 0, nA = 1, nB = 2 

Выглядит, как цикл проходит одну итерацию:

i,j,k,l,V:  0 0 0 0 -9.39073120245e-05

затем выдает ошибку.

1 Ответ

0 голосов
/ 25 мая 2018

Форма Vijkl (i, j, nA, nB), поэтому максимальные пределы для каждого измерения (i-1, j-1, nA-1, nB-1).Вы превышаете максимальный диапазон первых двух измерений.

...