Skip to content

Releases: Quantco/tabmat

tabmat 4.2.1

04 Feb 15:51
d919b46

Choose a tag to compare

Bug fixes:

  • Fixed methods _cross_categorical, _cross_sandwich, multiply, tocsr of CategoricalMatrix and function _sandwich_cat_cat_limited_rows_cols to operate on read-only buffers as well.

Full Changelog: 4.2.0...4.2.1

tabmat 4.2.0

13 Jan 13:06
aaadbc9

Choose a tag to compare

4.2.0 - 2026-01-13

New feature:

  • tabmat.from_formula now also supports any data frame supported by narwhals (including polars dataframes).

Other changes:

  • tabmat now requires Python>=3.10.

4.1.5

17 Dec 13:44
2f06c73

Choose a tag to compare

4.1.5 - 2025-12-17

Other change:

  • Restore building wheels for Intel-based macOS systems.

tabmat 4.1.4

16 Dec 21:38
3c717b7

Choose a tag to compare

4.1.4 - 2025-12-16

Other changes:

  • tabmat.from_df now avoids unnecessary copies of dense arrays, but still ensures that the results are contiguous (C or F order).
  • We now use narwhals' v2 API for data frame handling.

Full Changelog: 4.1.3...4.1.4

tabmat 4.1.3

12 Nov 11:07
f39ca49

Choose a tag to compare

4.1.3 - 2025-11-12

Bug fixes:

  • Fixed CategoricalMatrix.transpose_matvec to operate on read-only buffers as well.
  • Fixed incorrect calculation of the shape of a CategoricalMatrix when initialized with zero categories and drop_first=True.

tabmat 4.1.2

17 Jul 17:20
c954aa2

Choose a tag to compare

4.1.2 - 2025-07-17

Bug fixes:

  • Fixed a bug which caused issues when constructing tabmat matrices from existing ModelSpecs when they contained categorical columns with all levels dropped.
  • We can now treat dedicated pandas string series, which are the defaults for strings since pandas 2.3, as categoricals.

Full Changelog: 4.1.1...4.1.2

tabmat 4.1.1

30 Jan 08:51
e791633

Choose a tag to compare

4.1.1 - 2025-01-30

Bug fix:

  • A more robust :meth:DenseMatrix._get_col_stds results in more accurate :meth:StandardizedMatrix.sandwich results.

Other changes:

  • Build wheel for pypi on python 3.13.
  • Build and test with python 3.13 in CI.

Full Changelog: 4.1.0...4.1.1

tabmat 4.1.0

07 Nov 20:34
d3552a0

Choose a tag to compare

4.1.0 - 2024-11-07

New feature:

  • Added a new function, :func:tabmat.from_df, to convert any dataframe supported by narwhals into a :class:tabmat.SplitMatrix.

Other changes:

  • Allow :class:CategoricalMatrix to be initialized directly with indices and categories.
  • Added checks for dimension and dtype mismatch in :meth:MatrixBasesandwich.sandwich.

Bug fix:

  • Fixed a bug in :meth:tabmat.CategoricalMatrix.standardize that sometimes returned nan values for the standard deviation due to numerical instability if using np.float32 precision.

Full Changelog: 4.0.1...4.1.0

tabmat 4.0.1

25 Jun 07:09
b5e7622

Choose a tag to compare

4.0.1 - 2024-06-25

Other changes:

  • Removed reference to .A attribute and replaced it with .toarray()
  • Add support between formulaic and pandas 3.0
  • Support pypi release for numpy 2.0

Full Changelog: 4.0.0...4.0.1

tabmat 4.0.0

23 Apr 10:07
4e8f1d6

Choose a tag to compare

4.0.0 - 2024-04-23

Breaking changes:

  • To unify the API, :class:DenseMatrix does not inherit from :class:np.ndarray anymore. To convert a :class:DenseMatrix to a :class:np.ndarray, use :meth:DenseMatrix.unpack.
  • Similarly, :class:SparseMatrix does not inherit from :class:sps.csc_matrix anymore. To convert a :class:SparseMatrix to a :class:sps.csc_matrix, use :meth:SparseMatrix.unpack.

New features:

  • Added column name and term name metadata to :class:MatrixBase objects. These are automatically populated when initializing a :class:MatrixBase from a :class:pandas.DataFrame. In addition, they can be accessed and modified via the :attr:MatrixBase.column_names and :attr:MatrixBase.term_names properties.
  • Added a formula interface for creating tabmat matrices from pandas data frames. See :func:tabmat.from_formula for details.
  • Added support for missing values in :class:CategoricalMatrix by either creating a separate category for them or treating them as all-zero rows.
  • Added support for handling missing categorical values in pandas data frames.

Bug fix:

  • Added cython compiler directive legacy_implicit_noexcept = True to fix performance regression with cython 3.

Other changes:

  • Refactored the pre-commit hooks to use ruff.
  • Refactored :meth:CategoricalMatrix.transpose_matvec to be deterministic when using OpenMP.
  • Adjusted transformation to sparse format in :func:tabmat.from_pandas to future changes in pandas.

What's Changed

  • Pre-commit autoupdate by @quant-ranger in #351
  • Bump pypa/gh-action-pypi-publish from 1.8.11 to 1.8.12 by @dependabot in #352
  • Bump pypa/gh-action-pypi-publish from 1.8.12 to 1.8.14 by @dependabot in #353
  • Bump pypa/cibuildwheel from 2.16.5 to 2.17.0 by @dependabot in #354
  • Pre-commit autoupdate by @quant-ranger in #355
  • Set fill value of sparse columns in line with SparseDtype.subtype by @MatthiasSchmidtblaicherQC in #356
  • Tabmat v4 alpha by @MartinStancsicsQC in #286

Full Changelog: 3.1.14...4.0.0