equence of ints, optional Labels for which to calculate centers-of-mass. If not specified, the combined center of mass of all labels greater than zero will be calculated. Only used with `labels`. Returns ------- center_of_mass : tuple, or list of tuples Coordinates of centers-of-mass. Examples -------- >>> import numpy as np >>> a = np.array(([0,0,0,0], ... [0,1,1,0], ... [0,1,1,0], ... [0,1,1,0])) >>> from scipy import ndimage >>> ndimage.center_of_mass(a) (2.0, 1.5) Calculation of multiple objects in an image >>> b = np.array(([0,1,1,0], ... [0,1,0,0], ... [0,0,0,0], ... [0,0,1,1], ... [0,0,1,1])) >>> lbl = ndimage.label(b)[0] >>> ndimage.center_of_mass(b, lbl, [1,2]) [(0.33333333333333331, 1.3333333333333333), (3.5, 2.5)] Negative masses are also accepted, which can occur for example when bias is removed from measured data due to random noise. >>> c = np.array(([-1,0,0,0], ... [0,-1,-1,0], ... [0,1,-1,0], ... [0,1,1,0])) >>> ndimage.center_of_mass(c) (-4.0, 1.0) If there are division by zero issues, the function does not raise an error but rather issues a RuntimeWarning before returning inf and/or NaN. >>> d = np.array([-1, 1]) >>> ndimage.center_of_mass(d) (inf,) c