scipy.ndimage.center_of_mass¶
- 
scipy.ndimage.center_of_mass(input, labels=None, index=None)[source]¶
- Calculate the center of mass of the values of an array at labels. - Parameters
- inputndarray
- Data from which to calculate center-of-mass. The masses can either be positive or negative. 
- labelsndarray, optional
- Labels for objects in input, as generated by ndimage.label. Only used with index. Dimensions must be the same as input. 
- indexint or sequence of ints, optional
- Labels for which to calculate centers-of-mass. If not specified, all labels greater than zero are used. Only used with labels. 
 
- Returns
- center_of_masstuple, or list of tuples
- Coordinates of centers-of-mass. 
 
 - Examples - >>> a = np.array(([0,0,0,0], ... [0,1,1,0], ... [0,1,1,0], ... [0,1,1,0])) >>> from scipy import ndimage >>> ndimage.measurements.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.measurements.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.measurements.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.measurements.center_of_mass(d) (inf,) 
