# 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.