Source code for arrlp.modules.relabel_LP.relabel

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Date          : 2026-02-17
# Author        : Lancelot PINCET
# GitHub        : https://github.com/LancelotPincet
# Library       : arrLP
# Module        : relabel

"""
This function redefines a label array to fill potential holes inside the considered labels.
"""



# %% Libraries
from arrlp import get_xp



# %% Function
[docs] def relabel(labels) : ''' This function redefines a label array to fill potential holes inside the considered labels. Parameters ---------- labels : np.array Array of labels. Returns ------- newlabels : np.array New array of labels. Examples -------- >>> from arrlp import relabel ... >>> relabel(array) ''' xp = get_xp(labels) shape = labels.shape labels = labels.ravel().astype(xp.uint32) # Flatten array unique_values = xp.unique(labels) # Get sorted unique values mapping = xp.zeros(unique_values[-1].item() + 1, dtype=xp.uint32) # Create mapping array indices = xp.arange(len(unique_values), dtype=xp.uint32) mapping[unique_values] = indices labels[:] = mapping[labels] return labels.reshape(shape)
# %% Test function run if __name__ == "__main__": from corelp import test test(__file__)