Как индексировать массив неизвестных измерений ⇐ Python

Программы на Python
Anonymous
Как индексировать массив неизвестных измерений

Сообщение Anonymous »

У меня есть код Python, который использует массив numpy для хранения многомерных данных. Размерность массива определяется во время выполнения, поэтому я не могу заранее знать точное количество измерений, которое может быть от 3 до 6. Однако я знаю одно: если измерение существует в массиве, оно имеет 100 элементов. . Итак, сейчас мой код анализа выглядит примерно так:

Код: Выделить всё

ndim = myarray.ndim
if ndim == 2:
for p0 in range(100):
do_something(myarray[:, p0])
if ndim == 3:
for p0 in range(100):
for p1 in range(100):
do_something(myarray[:, p0, p1])
elif ndim == 4:
for p0 in range(100):
for p1 in range(100):
for p2 in range(100):
do_something(myarray[:, p0, p1, p2])
elif ndim == 5:
for p0 in range(100):
for p1 in range(100):
for p2 in range(100):
for p3 in range(100):
do_something(myarray[:, p0, p1, p2, p3])
elif ndim == 6:
for p0 in range(100):
for p1 in range(100):
for p2 in range(100):
for p3 in range(100):
for p4 in range(100):
do_something(myarray[:, p0, p1, p2, p3, p4])
Конечно, это работает, но мне кажется, что код не очень элегантен и сильно загроможден. Есть ли лучший способ сделать это? Я почти уверен, что должен быть способ индексировать массив, не зная заранее количества измерений, но я не могу найти подходящую функцию в документации по numpy.


Подробнее здесь: https://stackoverflow.com/questions/790 ... dimensions

Вернуться в «Python»