Индексирование массивов с разным количеством измерений - PullRequest
0 голосов
/ 12 сентября 2011

Я использую numpy и хочу сохранить результат вычисления в четырехмерной матрице или . Я хочу сделать что-то вроде этого:

result[:, indices, iteration] = some_function()  # won't work

, где размерность понимается по длине кортежа indices. Так что если indices равно, скажем, (6,) или (8, 5), тогда я хочу получить эквивалент

result[:, 6, iteration] = some_function()

или

result[:, 8, 5, iteration] = some_function()

Обычно я помещаю все координаты в кортеж и использую это как индекс, но наличие : не позволяет мне сделать это.

Измерение result было ранее установлено на правильное измерение, поэтому можете проверить его, но было бы неплохо использовать только длину indices для его определения. Есть ли способ сделать это?

Ответы [ 2 ]

2 голосов
/ 12 сентября 2011

Попробуйте использовать result[(slice(None),) + indices + (iteration,)]

1 голос
/ 12 сентября 2011

Если вам нужно знать длину индексов:

len(indices)

Но разве это ваш вопрос?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...