Как оптимизировать цикл for для заполнения массива 3-D np, используя значения из массива 2-D? - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть двумерный массив «точек» фигуры (N, 3), который состоит из N координат точек.Координаты точек в этом массиве упорядочены таким образом, что существуют уникальные смежные группы точек, так что «индексы» содержат индексы, с которых начинается каждая группа, и «счетчики» содержат количество элементов в каждой группе.Теперь я хочу создать трехмерный «выход» массива с размерами (K, T, 3), где K - количество уникальных групп, T - фиксированное число.Массив 'output' должен содержать максимум координат точки T для каждой уникальной группы.

Требуемая функциональность может быть достигнута с помощью следующего цикла for, но это трудоемкий процесс.Я хочу оптимизировать это для цикла.Я пытался использовать многопроцессорный пул, но не могу использовать его правильно в этом контексте.Было бы здорово, если бы кто-то мог помочь.Спасибо!

output = np.zeros(shape=(K, T, 3), dtype=np.float32)
counts = np.clip(counts, 0, T)

for i in range(K):
    output[i, :counts[i], :3] = points[indices[i]:indices[i]+counts[i]]
...