Releases: Quantco/tabmat
Releases · Quantco/tabmat
tabmat 4.2.1
Bug fixes:
- Fixed methods
_cross_categorical,_cross_sandwich,multiply,tocsrofCategoricalMatrixand function_sandwich_cat_cat_limited_rows_colsto operate on read-only buffers as well.
Full Changelog: 4.2.0...4.2.1
tabmat 4.2.0
4.2.0 - 2026-01-13
New feature:
tabmat.from_formulanow also supports any data frame supported bynarwhals(includingpolarsdataframes).
Other changes:
tabmatnow requires Python>=3.10.
4.1.5
tabmat 4.1.4
4.1.4 - 2025-12-16
Other changes:
tabmat.from_dfnow 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
4.1.3 - 2025-11-12
Bug fixes:
- Fixed
CategoricalMatrix.transpose_matvecto operate on read-only buffers as well. - Fixed incorrect calculation of the shape of a
CategoricalMatrixwhen initialized with zero categories anddrop_first=True.
tabmat 4.1.2
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
4.1.1 - 2025-01-30
Bug fix:
- A more robust :meth:
DenseMatrix._get_col_stdsresults in more accurate :meth:StandardizedMatrix.sandwichresults.
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
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:
CategoricalMatrixto be initialized directly with indices and categories. - Added checks for dimension and
dtypemismatch in :meth:MatrixBasesandwich.sandwich.
Bug fix:
- Fixed a bug in :meth:
tabmat.CategoricalMatrix.standardizethat sometimes returnednanvalues for the standard deviation due to numerical instability if usingnp.float32precision.
Full Changelog: 4.0.1...4.1.0
tabmat 4.0.1
4.0.1 - 2024-06-25
Other changes:
- Removed reference to
.Aattribute 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
4.0.0 - 2024-04-23
Breaking changes:
- To unify the API, :class:
DenseMatrixdoes not inherit from :class:np.ndarrayanymore. To convert a :class:DenseMatrixto a :class:np.ndarray, use :meth:DenseMatrix.unpack. - Similarly, :class:
SparseMatrixdoes not inherit from :class:sps.csc_matrixanymore. To convert a :class:SparseMatrixto a :class:sps.csc_matrix, use :meth:SparseMatrix.unpack.
New features:
- Added column name and term name metadata to :class:
MatrixBaseobjects. These are automatically populated when initializing a :class:MatrixBasefrom a :class:pandas.DataFrame. In addition, they can be accessed and modified via the :attr:MatrixBase.column_namesand :attr:MatrixBase.term_namesproperties. - Added a formula interface for creating tabmat matrices from pandas data frames. See :func:
tabmat.from_formulafor details. - Added support for missing values in :class:
CategoricalMatrixby 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 = Trueto fix performance regression with cython 3.
Other changes:
- Refactored the pre-commit hooks to use ruff.
- Refactored :meth:
CategoricalMatrix.transpose_matvecto be deterministic when using OpenMP. - Adjusted transformation to sparse format in :func:
tabmat.from_pandasto 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.subtypeby @MatthiasSchmidtblaicherQC in #356 - Tabmat v4 alpha by @MartinStancsicsQC in #286
Full Changelog: 3.1.14...4.0.0