ArrayComponents

ArrayComponents[array]
gives an array in which all identical elements of array are replaced by an integer index representing the component in which the element lies.

ArrayComponents[array,level]
finds the identical elements at the specified level in array

ArrayComponents[array,level,rules]
uses a rule or a list of rules for specifying the labels.

DetailsDetails

  • ArrayComponents returns a label matrix where identical elements are represented by consecutive non-negative integers.
  • Occurrences of zeros or None in array are always labeled with zeros.
  • ArrayComponents can be used to canonicalize label matrices.

Background
Background

  • ArrayComponents gives an array in which all identical elements of an input array are replaced by an integer index (or "label") representing the component in which the element lies. The indices start at and run consecutively through the number of distinct array elements. A special exception is that any occurrences of and None are labeled with .
  • ArrayComponents works on lists, two-dimensional arrays, and arrays of arbitrary rank. It can be used to find identical elements at a specified level (e.g. rows in an array). Specific relabeling rules may also be specified.
  • ArrayComponents is useful to canonicalize label matrices that are produced from segmentation algorithms. While segmentation algorithms in the Wolfram Language generally return a canonicalized array, functions like DeleteSmallComponents, DeleteBorderComponents, and SelectComponents may delete some indices. ArrayComponents can then be used to relabel using exactly the integers through n for the n remaining components.
  • Component measurements and selections such as ComponentMeasurements and SelectComponents can be applied to the result of ArrayComponents for 2D and 3D label matrices.
  • ClusteringComponents provides a generalization of ArrayComponents that corresponds to ArrayComponents when the number of clusters is specified as the number of distinct elements in the input array.

ExamplesExamplesopen allclose all

Basic Examples  (3)Basic Examples  (3)

Components in a symbolic array:

In[1]:=
Click for copyable input
Out[1]//MatrixForm=

Components in the first level of an array:

In[1]:=
Click for copyable input
Out[1]=

Label identical elements in a list:

In[1]:=
Click for copyable input
Out[1]=
Introduced in 2010
(8.0)
| Updated in 2012
(9.0)