Click or drag to resize

Meta.Numerics.Data Namespace

Contains types used to import and export, filter, and transform data sets.
Public classFrameColumn
Represents one column of a data frame.
Public classFrameColumnCollection
Represents a collection of columns of a data frame.
Public classFrameRow
Represents one row of a data frame.
Public classFrameRowCollection
Represents a collection of rows of a data frame.
Public classFrameTable
Represents a modify-able array of data.
Public classFrameView
Represents a read-only view of an array of data.
Public enumerationSortOrder
Specifies the order of sorting.

This namespace contains types for data wrangling, i.e. importing and exporting data and preparing it for analysis.

Our data wrangling system is based on the data frames concept. Data frames are table-based data stores with the following characteristics:

  • Columns are addressable by name.
  • All data in a column is of the same type, but different columns in the same table can have different types.
  • Columns can added, removed, computed, and otherwise manipulated.
  • Rows can be added, removed, filtered, re-ordered, and otherwise manipulated.
  • Tables can be imported and exported in multiple formats.

The central class for storing data is the FrameTable class. Methods such a FromCsv(TextReader) and FromDictionaries(IEnumerableIReadOnlyDictionaryString, Object) allow data to be imported into a table from CSV or JSON formatted text files.

The central class for interrogating data is the FrameView class. Each FrameTable is itself a view, and most manipulations of a view produce a new view, which can itself be further manipulated. When a new FrameView is returned, the original data is not copied, but simply referenced, so these manipulations are typically fast and have a much smaller memory footprint than the data they expose.

Frames support null data values in structure-typed columns using .NET's NullableT structure.

After using the types of this namespace to prepare your data, you can extract columns from your views as strongly-typed lists (which implement IReadOnlyListT, IReadOnlyCollectionT, and IEnumerableT) and hand them to any analysis API. This includes our own statistical analysis APIs in the Meta.Numerics.Data namespace, as well as any APIs from other libraries that operate of lists of strongly typed collections.