Более быстрая вокселизация с обратными индексамиPython

Программы на Python
Anonymous
Более быстрая вокселизация с обратными индексами

Сообщение Anonymous »

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

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

def voxelize(points, voxel_size):
voxel_indices = np.floor(points / voxel_size).astype(np.int32)
unique_voxel_indices, inverse_indices = np.unique(
voxel_indices, axis=0, return_inverse=True
)
voxel_centers = (unique_voxel_indices + 0.5) * voxel_size
return voxel_indices, unique_voxel_indices, voxel_centers, inverse_indices
Однако этот код становится для меня узким местом, поскольку он выполняется тысячи раз.
Я нахожу похожие вопросы, чтобы ускорить этот процесс но без обратных индексов. В Numba также не реализована эта версия np.unique. Есть ли какой-то метод, который мне не хватает, который значительно быстрее, но также обеспечивает расчет индексов?

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

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