Up to this point in the book, features have generally been treated as singular objects. Yet in many cases, the goal is to work with a bundle of features, comparing them with each other, filtering the list of features, or generally extracting information from the set of features. In the SimpleCV framework, many features are bundles of numeric properties that can be manipulated using NumPy and SciPy, two Python libraries for managing (potentially very large and complex) tables of numbers. The kind of manipulations illustrated in this chapter provide an introduction to NumPy and SciPy, and for more details about working with these tools, see other books such as Eli Bresser’s book, SciPy and NumPy: An Overview for Developers.
NumPy has been briefly mentioned earlier in this book, but has not been formally introduced. NumPy is a Python library that provides support for large, multidimensional arrays and matrices. It also provides some numerical functions that can operate on those arrays and matrices. SciPy adds to this with a library of scientific functions for Python that span mathematics, science, and engineering. More information about NumPy is available from http://numpy.scipy.org, and for more on SciPy, visit http://scipy.org.
FeatureSet is a list of features.
From a programming perspective, this means that a
FeatureSet is an extension of a Python list. Any
Python tasks that work with a list also work with a
FeatureSet. However, a