Доступ к элементу array[][]...[] с N "[]" автоматически

Сначала я прошу прощения, если этот вопрос уже задавался. Я искал это, но ничего не нашел.

Учитывая следующий код:

RHO = RHOarray(D,nbInter)
    print(RHO)
    for k in range(N):
        for l in range(D):
            j=0
            Coord=[0 for i in range(D)]
            while ((X[k][l]>mini+(j+1)*step) and (j<nbInter)):
                j+=1
            Coord[l]+=j 
            RHO[ ]
for k in range(len(RHO)):
    RHO[k]/=N
return RHO  

RHO является массивом D-размеров, размером nbInter. (RHOarray - это функция, которая создает такой массив). Проблема в том, что в соответствии со значением D, мне нужно получить доступ к RHO[n], если D = 1, RHO[n][m], если D = 2 ... RHO[n][m]...[что угодно indice] с увеличением D На самом деле каждый индекс будет Coord[0], Coord[1]... и так далее, так что я знаю, что я должен добавить в каждый индекс. Чтобы сделать вопрос "проще": как я могу сделать так, чтобы число "[...]" после RHO увеличивалось так же, как и D?

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

ps Исходный код длиннее, но я не думаю, что нужно показывать его полностью.

1 ответ

Решение

Вы могли бы просто сделать что-то вроде

 indices = [1, 2, 3, 4, 5]
 value = X

 for i in indices:
     value = value[i]
 print(value)

Если X массив NumPy, вы могли бы сделать напрямуюX[(1,2,3)] вместо X[1, 2, 3] или же X[1][2][3]

Другие вопросы по тегам