# Data Analysis Library Features

Numerics.NET includes classes for the following subject areas. Also see the detailed Math, Vector and Matrix, and Statistics feature lists.

Start your free 30 day trial today!

### General

• Full featured Data Frames (similar to R and pandas).
• Vector elements can have labels. Matrices can have row and column labels.
• A large set of aggregators and aggregator functions.
• Large set of groupings, including moving and expanding windows, 2D pivot tables, and time-based resampling.
• New generic Descriptives class for collecting descriptive statistics of vectors.
• Indexes on ordered types support lookup nearest. Likewise, data frames with such indexes now support join on nearest.
• New Recurrence type lets you specify date/time patterns for use in, for example, resampling of data frames.

### Data frames

• Column-based in-memory database tables.
• Index rows and columns based on position or key.
• Add, insert, remove, rename, transform columns.
• Perform joins between data frames on indexes and/or columns.
• Join-to-nearest on ordered row indexes.
• Filter data frames on position, keys, boolean mask.
• Data frames can be passed directly to statistical and machine learning models.

### Indexes

• A collection of labels for the rows and columns in a data frame or matrix or the elements of a vector..
• Multi-level indexes are supported.
• Indexes are automatically propagated through calculations.
• Operations on vectors and matrices are automatically aligned on their indexes.

### Aggregators

• All the standard aggregators (Max/Min, Sum, Mean…).
• Automatically convert to intermediate values (for example: compute the mean of a set of integers using doubles)
• Aggregations can be applied to data frames, vectors, matrices, tensors.
• Aggregations return a single value per vector input, or multiple values when using a group by.
• Aggregations can be performed with or without filters for missing values or NaN’s.
• Efficiently compute aggregates over moving windows.

### Groupings

• Group on index or column values, categorical vectors.
• Group on date/time values using flexible recurrences.
• Binning based on values or quantiles.
• Moving windows: fixed size, expanding, condition-dependent.
• Paritions, both fixed and condition-dependent.
• Aggregate in two dimensions using pivot tables.