Changelog
Unreleased
3.1.0 - 2022-03-07
New feature
tabmat.CategoricalMatrix
now accepts a drop_first argurment. This allows the user to drop the first column of a CategoricalMatrix to avoid multicollinearity problems in unregularized models.tabmat.StandardizedMatrix
andtabmat.MatrixBase
now support the multiply method.
3.0.8 - 2022-01-03
Bug fix
Always use 64bit integers for indexing in
tabmat.ext.sparse.sparse_sandwich()
to avoid segmentation faults on very wide problems.
3.0.7 - 2021-11-23
Bug fix
Disable the use of static TLS in the Linux wheels to avoid issues with too small TLS on some distributions.
3.0.6 - 2021-11-11
Bug fix
We fixed a bug in
tabmat.SplitMatrix.matvec()
, where incorrect matrix vector products were computed when aSplitMatrix
did not contain any dense components.
3.0.5 - 2021-11-05
Other changes
We are now specifying the run time dependencies in
setup.py
, so that missing dependencies are automatically installed from PyPI when installingtabmat
via pip.
3.0.4 - 2021-11-03
Other changes
tabmat is now available on PyPI and will be automatically updated when a new release is published.
3.0.3 - 2021-10-15
Bug fix
We now support
xsimd>=8
and support alternative jemalloc installations.
3.0.2 - 2021-10-14
Bug fix
Allow to link to alternatively suffixed jemalloc installation to work around #113 .
3.0.1 - 2021-10-07
Bug fix
The license was mistakenly left as proprietary. Corrected to BSD-3-Clause.
Other changes
ReadTheDocs integration.
CONTRIBUTING.md
Correct pyproject.toml to work with PEP-517
3.0.0 - 2021-10-07
Breaking changes:
The package has been renamed to
tabmat
. CELEBRATE!The
one_over_var_inf_to_val()
function has been made private.The
csc_to_split()
function has been re-named totabmat.from_csc()
to match thetabmat.from_pandas()
function.The
tabmat.MatrixBase.get_col_means()
andtabmat.MatrixBase.get_col_stds()
methods have been made private.The
cross_sandwich()
method has also been made private.
Bug fix
StandardizedMatrix.transpose_matvec()
was giving the wrong answer when the out parameter was provided. This is now fixed.SplitMatrix.__repr__()
now calls the __repr__ method of component matrices instead of __str__.
Other changes
Optimized the
tabmat.SparseMatrix.matvec()
andtabmat.SparseMatrix.tranpose_matvec()
for whenrows
andcols
are None.Implemented
CategoricalMatrix.__rmul__()
Reorganizing the documentation and updating the text to match the current API.
Enable indexing the rows of a
CategoricalMatrix
. PreviouslyCategoricalMatrix.__getitem__()
only supported column indexing.Allow creating a
SplitMatrix
from a list of anyMatrixBase
objects including anotherSplitMatrix
.Reduced memory usage in
tabmat.SplitMatrix.matvec()
.
2.0.3 - 2021-07-15
Bug fix
In
SplitMatrix.sandwich()
, when a col subset was specified, incorrect output was produced if the components of the indices array were not sorted.SplitMatrix.__init__()
now checks for sorted indices and maintains sorted index lists when combining matrices.
Other changes
SplitMatrix.__init__()
now filters out any empty matrices.StandardizedMatrix.sandwich()
passesrows=None
andcols=None
onwards to the underlying matrix instead of replacing them with full arrays of indices. This should improve performance slightly.SplitMatrix.__repr__()
now includes the type of the underlying matrix objects in the string output.
2.0.2 - 2021-06-24
Bug fix
Sparse matrices now accept 64-bit indices on Windows.
2.0.1 - 2021-06-20
Bug fix:
Split matrices now also work on Windows.
2.0.0 - 2021-06-17
Breaking changes:
We renamed several public functions to make them private. These include functions in tabmat.benchmark
that are unlikely to be used outside of this package as well as
tabmat.dense_matrix._matvec_helper()
tabmat.sparse_matrix._matvec_helper()
.
tabmat.split_matrix._prepare_out_array()
.
Other changes:
We removed the dependency on
sparse_dot_mkl
. We now usescipy.sparse.csr_matvec()
instead ofsparse_dot_mkl.dot_product_mkl()
on all platforms, because the former suffered from poor performance, especially on narrow problems. This also means that we removed the functiontabmat.sparse_matrix._dot_product_maybe_mkl()
.We updated the pre-commit hooks and made sure the code is line with the new hooks.
1.0.6 - 2020-04-26
Other changes:
We are now also making releases for Windows.
1.0.5 - 2020-04-26
Other changes:
Still trying.
1.0.4 - 2020-04-26
Other changes:
We are trying to make releases for Windows.
1.0.3 - 2020-04-21
Bug fixes:
Added a check that matrices are two-dimensional in the
SplitMatrix.__init__
Replace
np.int
withnp.int64
where appropriate due to NumPy deprecation ofnp.int
.
1.0.2 - 2020-04-20
Other changes:
Added Python 3.9 support.
Use
scipy.sparse
dot product when MKL isn’t available.
1.0.1 - 2020-11-25
Bug fixes:
Handling for nulls when setting up a
CategoricalMatrix
Fixes to make several functions work with both row and col restrictions and out
Other changes:
Added various tests and documentation improvements
1.0.0 - 2020-11-11
Breaking change:
Rename dot to matvec. Our dot function supports matrix-vector multiplication for every subclass, but only supports matrix-matrix multiplication for some. We therefore rename it to matvec in line with other libraries.
Bug fix:
Fix a bug in matvec for categorical components when the number of categories exceeds the number of rows.
0.0.6 - 2020-08-03
See git history.