Skip to content

Latest commit

 

History

History
316 lines (270 loc) · 14.9 KB

changelog.rst

File metadata and controls

316 lines (270 loc) · 14.9 KB

Changelog

sparse

0.15.1 / 2024-01-10

  • Fix regression where with XArray by supporting all API functions via the Array API standard. (622 thanks hameerabbasi)

0.15.0 / 2024-01-09

  • Fix regression where DeprecationWarning`s were being fired unexpectedly. (:pr:`581 thanks hameerabbasi)
  • Extended sparse.einsum support (579 thanks HadrienNU)
  • General code clean-up (586 thanks MHRasmy, 598 thanks jamestwebber)
  • Bug fixes with respect to NumPy compatibility (598 thanks hameerabbasi, 609 thanks Illviljan, 620 thanks mtsokol)
  • Bug fixes with respect to GCXS (611 thanks EuGig, 601 thanks jamestwebber)
  • Array API standard support (612, 613, 614, 615, 619, 620 thanks mtsokol)
  • matrepr support for display of sparse data (605, 606 thanks alugowski).
  • Larger code clean-up with Ruff formatter and linter (617, 621 thanks hameerabbasi)
  • Packaging and maintenance (616, b5954e68d3d6e35a62f7401d1d4fb84ea04414dd, dda93d3ea9521881c721c3ba875c769c9c5a79d4 thanks hameerabbasi)

0.14.0 / 2023-02-24

  • sparse.einsum support (564 thanks jcmgray)
  • Some bug-fixes (524, 527, 555 thanks hameerabbasi, 569, thanks jamestwebber, 534, thanks sarveshbhatnagar)
  • Some performance improvements (570, thanks jamestwebber, 540, thanks smldub).
  • Miscellaneous maintenance fixes.

0.13.0 / 2021-08-28

  • GCXS improvements and changes. (448, 450, 455, thanks sayandip18).
  • Maintainence fixes (462, 466, 1ccb85da581be65a0345b399e00fd3c325700d95, 5547b4e92dc8d61492e9dc10ba00175c1a6637fa 00c0e5514de2aab8b9a0be16b5da470b091d9eb9, fcd3020dd08c7022a44f709173fe23969d3e8f7c, thanks hameerabbasi)
  • sparse.DOK.from_scipy_sparse method (464, 463, thanks hameerabbasi).
  • Black re-formatting (471, 484, thanks GenevieveBuckley, sayandip18)
  • Add sparse.pad (474, 438, thanks H4R5H1T-007)
  • Switch to GitHub Actions (5547b4e92dc8d61492e9dc10ba00175c1a6637fa..a332f22c96a96e5ab9b4384342df67e8f3966f85)
  • Fix a number of bugs in format conversion. (504, 503, thanks hameerabbasi)
  • Fix bug in sparse.matmul for higher-dimensional arrays. (508, 506, thanks sayandip18).
  • Fix scalar conversion to COO (510, 511, thanks hameerabbasi)
  • Fix OOB memory accesses (515, 1e24a7e29786e888dee4c02153309986ae4b5dde thanks hameerabbasi)
  • Fixes element-wise ops with scalar COO array. (505, 5211441ec685233657ab7156f99eb67e660cee86, thanks hameerabbasi)
  • Fix scalar broadcast_to with nnz==0. (513, bfabaa0805e811884e79c4bdbfd14316986d65e4, thanks hameerabbasi)
  • Add order parameter to {zero, ones, full}[_like]. (514, 37de1d0141c4375962ecdf18337c2dd0f667b60c, thanks hameerabbasi)
  • Fix tensordot typing bugs. (493, 499, 37de1d0141c4375962ecdf18337c2dd0f667b60c, thanks hameerabbasi).

0.12.0 / 2021-03-19

There are a number of large changes in this release. For example, we have implemented the GCXS type, and its specializations CSR and CSC. We plan on gradually improving the performance of these.

  • A number of GCXS fixes and additions (409, 407, 414, 417, 419 thanks daletovar)
  • Ability to change the index dtype for better storage characteristics. (441, thanks daletovar)
  • Some work on DOK arrays to bring them closer to the other formats (435, 437, 439, 440, thanks DragaDoncila)
  • CSR and CSC specializations of GCXS (442, thanks ivirshup) For now, this is experimental undocumented API, and subject to change.
  • Fix a number of bugs (407, 406)
  • Add nnz parameter to sparse.random (410, thanks emilmelnikov)

0.11.2 / 2020-09-04

  • Fix TypingError on sparse.dot with complex dtypes. (403, 404)

0.11.1 / 2020-08-31

  • Fix ValueError on sparse.dot with extremely small values. (398, 399)

0.11.0 / 2020-08-18

  • Improve the performance of sparse.dot. (331, 389, thanks daletovar)
  • Added the COO.swapaxes method. (344, thanks lueckem)
  • Added multi-axis 1-D indexing support. (343, thanks mikeymezher)
  • Fix outer for arrays that weren't one-dimensional. (346, 347)
  • Add casting kwarg to COO.astype. (391, 392)
  • Fix for COO constructor accepting invalid inputs. (385, 386)

0.10.0 / 2020-05-13

  • Fixed a bug where converting an empty DOK array to COO leads to an incorrect dtype. (314, 315)
  • Change code formatter to black. (284)
  • Add COO.flatten and sparse.outer. (316, 317).
  • Remove broadcasting restriction between sparse arrays and dense arrays. (306, 318)
  • Implement deterministic dask tokenization. (300, 320, thanks danielballan)
  • Improve testing around densification (321, thanks danielballan)
  • Simplify Numba extension. (324, thanks eric-wieser).
  • Respect copy=False in astype (328, thanks eric-wieser).
  • Replace linear_loc with ravel_multi_index, which is 3x faster. (330, thanks eric-wieser).
  • Add error msg to tensordot operation when ndim==0 (332, 333, thanks guilhermeleobas).
  • Maintainence fixes for Sphinx 3.0 and Numba 0.49, and dropping support for Python 3.5. (337).
  • Fixed signature for numpy.clip.

0.9.1 / 2020-01-23

  • Fixed a bug where indexing with an empty list could lead to issues. (281, 282)
  • Change code formatter to black. (284)
  • Add the diagonal and diagonalize functions. (288, 289, thanks pettni)
  • Add HTML repr for notebooks. (283, thanks daletovar)
  • Avoid making copy of coords when making a new COO array.
  • Add stack and concatenate for GCXS. (301, 303, thanks daletovar).
  • Fix issue where functions dispatching to an attribute access wouldn't work with __array_function__. (308, 309).
  • Add partial support for constructing and mirroring COO objects to Numba.

0.8.0 / 2019-08-26

This release switches to Numba's new typed lists, a lot of back-end work with the CI infrastructure, so Linux, macOS and Windows are officially tested. It also includes bug fixes.

It also adds in-progress, not yet public support for the GCXS format, which is a generalisation of CSR/CSC. (huge thanks to daletovar)

  • Fixed a bug where an array with size == 1 and nnz == 0 could not be broadcast. (242, 243)
  • Add std and var. (244)
  • Move to Azure Pipelines with CI for Windows, macOS and Linux. (245, 246, 247, 248)
  • Add resize, and change reshape so it raises a ValueError on shapes that don't correspond to the same size. (241, 250, 256 thanks, daletovar)
  • Add isposinf and isneginf. (252, 253)
  • Fix tensordot when nnz = 0. (255, 256)
  • Modifications to __array_function__ to allow for sparse XArrays. (261, thanks nvictus)
  • Add not-yet-public support for GCXS. (258, thanks daletovar)
  • Improvements to __array_function__. (267, 272, thanks crusaderky)
  • Convert all Numba lists to typed lists. (264)
  • Why write code when it exists elsewhere? (277)
  • Fix some element-wise operations with scalars. (278)
  • Private modules should be private, and tests should be in the package. (280)

0.7.0 / 2019-03-14

This is a release that adds compatibility with NumPy's new __array_function__ protocol, for details refer to NEP-18.

The other big change is that we dropped compatibility with Python 2. Users on Python 2 should use version 0.6.0.

There are also some bug-fixes relating to fill-values.

This was mainly a contributor-driven release.

The full list of changes can be found below:

  • Fixed a bug where going between sparse.DOK and sparse.COO caused fill-values to be lost. (225, 226).
  • Fixed warning for a matrix that was incorrectly considered too dense. (228, 229)
  • Fixed some warnings in Python 3.7, the fix was needed. in preparation for Python 3.8. (233, thanks nils-werner)
  • Drop support for Python 2.7 (234, 235, thanks hugovk)
  • Clearer error messages (230, 231, 232)
  • Restructure requirements.txt files. (236)
  • Support fill-value in reductions in specific cases. (237, 238)
  • Add __array_function__ support. (239, thanks, pentschev)
  • Cleaner code! (240)

0.6.0 / 2018-12-19

This release breaks backward-compatibility. Previously, if arrays were fed into NumPy functions, an attempt would be made to densify the array and apply the NumPy function. This was unintended behaviour in most cases, with the array filling up memory before raising a MemoryError if the array was too large.

We have now changed this behaviour so that a RuntimeError is now raised if an attempt is made to automatically densify an array. To densify, use the explicit .todense() method.

  • Fixed a bug where np.matrix could sometimes fail to convert to a COO. (199, 200).
  • Make sure that sparse @ sparse returns a sparse array. (201, 203)
  • Bring operator.matmul behaviour in line with NumPy for ndim > 2. (202, 204, 217)
  • Make sure dtype is preserved with the out kwarg. (205, 206)
  • Fix integer overflow in reduce on Windows. (207, 208)
  • Disallow auto-densification. (218, 220)
  • Add auto-densification configuration, and a configurable warning for checking if the array is too dense. (210, 213)
  • Add pruning of fill-values to COO constructor. (221)

0.5.0 / 2018-10-12

  • Added COO.real, COO.imag, and COO.conj (196).
  • Added sparse.kron function (194, 195).
  • Added order parameter to COO.reshape to make it work with np.reshape (193).
  • Added COO.mean and sparse.nanmean (190).
  • Added sparse.full and sparse.full_like (189).
  • Added COO.clip method (185).
  • Added COO.copy method, and changed pickle of COO to not include its cache (184).
  • Added sparse.eye, sparse.zeros, sparse.zeros_like, sparse.ones, and sparse.ones_like (183).

0.4.1 / 2018-09-12

  • Allow mixed ndarray-COO operations if the result is sparse (124, via 182).
  • Allow specifying a fill-value when converting from NumPy arrays (179, via 180).
  • Added COO.any and COO.all methods (175).
  • Indexing for COO now accepts a single one-dimensional array index (172).
  • The fill-value can now be something other than zero or False (165).
  • Added a sparse.roll function (160).
  • Numba code now releases the GIL. This leads to better multi-threaded performance in Dask (159).
  • A number of bugs occurred, so to resolve them, COO.coords.dtype is always np.int64. COO, therefore, uses more memory than before (158).
  • Add support for saving and loading COO files from disk (153, via 154).
  • Support COO.nonzero and np.argwhere (145, via 148).
  • Allow faux in-place operations (80, via 146).
  • COO is now always canonical (141).
  • Improve indexing performance (128).
  • Improve element-wise performance (127).
  • Reductions now support a negative axis (117, via 118).
  • Match behaviour of ufunc.reduce from NumPy (107, via 108).

0.3.1 / 2018-04-12

  • Fix packaging error (138).

0.3.0 / 2018-02-22

  • Add NaN-skipping aggregations (102).
  • Add equivalent to np.where (102).
  • N-input universal functions now work (98).
  • Make dot more consistent with NumPy (96).
  • Create a base class SparseArray (92).
  • Minimum NumPy version is now 1.13 (90).
  • Fix a bug where setting a DOK element to zero did nothing (93, via 94).

0.2.0 / 2018-01-25

  • Support faster np.array(COO) (87).
  • Add DOK type (85).
  • Fix sum for large arrays (82, via 83).
  • Support .size and .density (69).
  • Documentation added for the package (43).
  • Minimum required SciPy version is now 0.19 (70).
  • len(COO) now works (68).
  • scalar op COO now works for all operators (67).
  • Validate axes for .transpose() (61).
  • Extend indexing support (57).
  • Add random function for generating random sparse arrays (41).
  • COO(COO) now copies the original object (55).
  • NumPy universal functions and reductions now work on COO arrays (49).
  • Fix concatenate and stack for large arrays (32, via 51).
  • Fix nnz for scalars (47, via 48).
  • Support more operators and remove all special cases (46).
  • Add support for triu and tril (40).
  • Add support for Ellipsis (...) and None when indexing (37).
  • Add support for bitwise bindary operations like & and | (38).
  • Support broadcasting in element-wise operations (35).