`sparse` v0.16.0b2
Pre-releaseChanges
- Update
sparse_finch
notebook and upgradefinch-tensor
(#820) - Allow no-copy construction from SciPy COO arrays. (#822)
- MAINT: Re-enable COO tests after fix (#814)
- Attempt to fix Heisenbug by skipping COO. (#813)
- update finch-tensor-python to fix tests (#812)
- skip changelog(deps): bump codecov/codecov-action from 4 to 5 (#811)
- Testing improvements and minor fixes. (#808)
- skip changelog(deps): bump mamba-org/setup-micromamba from 1 to 2 (#790)
- MAINT: Upgrade MLIR version (#785)
- ENH: Implement
reshape
function (#776) - ENH: CSC and CSF formats for MLIR backend (#775)
- MNT: Move constructors to a direct style (#773)
- MNT: Refactor MLIR constructors (#771)
- ENH: Simple COO format (#768)
- skip changelog(deps): bump actions/setup-python from 3 to 5 (#735)
- MNT: Add CI mode to examples (#716)
- Add example notebook (#709)
- BUG: Skip
test_where
test (#707) - Fix 1D return dtype in argmax/argmin (#704)
- MNT:
sparse
import refactor (#695) - Add Array API tests for Numba backend. (#688)
scipy.sparse
fill-value fix. (#685)- Upgrade
finch-tensor
(#684) - Add tests for
scipy.sparse.csgraph
andscipy.sparse.linalg
(#683) - Update Finch backend (#678)
- Add support for NumPy 2.0. (#681)
- Add
SpMV
example (#677) - Add
MTTKRP
example (#676) - Add
SDDMM
example (#674) - [pre-commit.ci] pre-commit autoupdate (#675)
- [pre-commit.ci] pre-commit autoupdate (#672)
- Do strict checking of Array API in CI job. (#671)
- [pre-commit.ci] pre-commit autoupdate (#670)
- [pre-commit.ci] pre-commit autoupdate (#667)
- Upgrade
finch-tensor
dep (#666) - API: Rename
PyData
backend toNumba
(#665) - [pre-commit.ci] pre-commit autoupdate (#663)
- API: Enable finch backend for
scipy.sparse
(#664) - Update
finch-tensor
version (#662) - [pre-commit.ci] pre-commit autoupdate (#661)
- BUG: Fix CSR/CSC matmul (#660)
- Finch+PyData benchmarks (#652)
- API: Update
asarray
function (#658) - Support Python 3.12 and drop 3.9. (#656)
- Update Finch backend (#657)
- Remove
backend
kwarg fromasarray
. (#655) - [pre-commit.ci] pre-commit autoupdate (#654)
- Enable benchmarks (#651)
- [pre-commit.ci] pre-commit autoupdate (#650)
- API: Initial
finch_backend
(#649) - API: Establish
pydata_backend
(#646) - [pre-commit.ci] pre-commit autoupdate (#648)
- Modernize CI (#641)
- Improve performance of GCXS dot ndarray (#643)
- [pre-commit.ci] pre-commit autoupdate (#644)
- [pre-commit.ci] pre-commit autoupdate (#642)
- [pre-commit.ci] pre-commit autoupdate (#640)
- Remove dynamic PyTest options. (#637)
- CI: Remove Python 3.8 and update miniconda (#636)
- [pre-commit.ci] pre-commit autoupdate (#635)
- Always use
np.intp
for indices. (#634) - Add missing linear algebra functions from array API (#633)
- Make SciPy a soft dependency (#632)
- [pre-commit.ci] pre-commit autoupdate (#630)
- NumPy 2.0 support (#625)
- Add direct imports from NumPy for Array API support (#624)
- Add functions to public API. (#623)
- Add more lints to Ruff for better code quality. (#621)
- API: Add
kwargs
tosparse.einsum
(#620) - DOC: Add array representations to sparse array construction examples (#606)
- Preserve gcxs compression (#601)
- Introduce pre-commit. (#617)
- Replace setup.py and versioneer with pyproject.toml and setuptools_scm. (#616)
- API: Improve
sparse.asarray
(#615) - API: Refactor
argmax
andargmin
(#614) - API: Add
squeeze
method to COO (#613) - API: Array API support - Part 1 (#612)
- Fixing "GCXS matmul => slice leads to incorrect results" (#611)
- Fix issue with .real/.imag with string dtypes (#609)
- Use matrepr for rich
__str__
and_repr_html_
(#605) - Fix upcast on in-place. (#598)
- Add CodeQL workflow for GitHub code scanning (#561)
- Minor bug: import warnings in
_sparse_array.SparseArray
(#597) - test on 3.11 (#572)
- Convert two assignments to augmented source code #531 (#586)
- change parsing of the input in einsum (#579)
- Fix misfire of DeprecationWarning. (#581)
- Prepare for 0.14.0. (#578)
- Fix ReadTheDocs build. (#577)
- einsum (#564)
- Add .format support to GCXS and COO classes (#573)
- Improving indexing performance (#570)
- fix errors/crashes in multi-dimensional slicing (#569)
- Relative imports (helps vendoring) (#565)
- added svg logo and logo-generating script (#556)
- Fix nanmean for complex arrays. (#555)
- Allow an ndarray of integers as a shape. (#544)
- fix scipy url in intersphinx mapping (#543)
- Adding Vitter Random Sampling without replacement (#540)
- removed transpose before _dot_ndarray_coo function (#537)
- Solved Issue 529 (#534)
- Add a missing check for one-argument version of np.where. (#527)
- Update CodeCov action. (#525)
- Fix full_like with GCXS input. (#524)
- Prepare for 0.13.0. (#518)
- Change email on CoC. (#517)
- Fix a number of bugs. (#516)
- Fix incorrect sparse scalar array. (#511)
- Fixing NaN check bug (#508)
- Fix format conversion bugs. (#504)
- Fix DOK indexing and CI failures. (#501)
- Skip doctest on 32bits arch (#486)
- Black formatting in
benchmark_matmul.py
(#484) - Fix up action. (#489)
- Add GitHub actions. (#488)
- Fix falsely triggered advanced indexing. (#482)
- Improve matmul benchmark (#467)
- Fix concatenate/stack for sparse.DOK. (#476)
- Added implementation of sparse.pad() (#474)
- Pytest failures - fixed with black re-formatting (#471)
- Miscellaneous improvements in docs (#466)
- Added warnings for NaN propagation (#469)
- Add DOK sparse constructor. (#464)
- Maintance fixes. (#462)
- Fixed typo in docstring (#457)
- Attempt to reformat docstring to match Numpydoc standard. (#456)
- Update docs for GCXS and CSR/CSC (#455)
- Fix typo in var function docstring (#454)
- Fix ZeroDivisionError on html_table. (#447)
- Document elementwise functions for DOK arrays (#451)
- Docstrings to CSC, CSR classes (#450)
- Modify GCXS docstring (#448)
- Prepare for 0.12.0 release. (#446)
- Make a number of immutability changes. (#445)
- Initial CSC/ CSR classes (#442)
- allow for use of different dtypes in coords, indices, and indptr (#441)
- Implement equality comparison for DOK arrays (#440)
- Fix dok getitem (#439)
- Document ability to slice and fancy index DOK arrays (#437)
- Add slicing and subset of fancy indexing to DOK array access (#436)
- Add fancy indexing support for DOK item assignment (#435)
- Add shape= kwarg in {zeros, ones, full}_like. (#423)
- use correct pointer type for coo shape (#421)
- add benchmarks (#419)
- Add gcxs to docs (#414)
- Move conj, real, and imag to SparseArray (#417)
- Add elemwise ops for GCXS (#412)
- Add nnz parameter to sparse.random (#410)
- Fix a number of random bugs. (#407)
- Add fill value pruning to GCXS (#409)
- Prepare for 0.11.2. (#405)
- Fix dot for complex dtypes. (#404)
- add reductions (#397)
- Prepare for 0.11.1. (#402)
- Fix dot for extremely small values. (#399)
- Prepare for 0.11.0 release. (#396)
- Fix warnings in the test suite. (#395)
- Improve dot performance (#389)
- Add the casting kwarg to astype. (#392)
- Fix ND being accepted as COO data. (#386)
- GCXS Slicing and reshape/resize/transpose/change_compressed_axes (#382)
- Fix format kwarg in zeros_like. (#381)
- added method moveaxis (#362)
- Fix scalar initialization with list inputs. (#356)
- Update roadmap. (#353)
- Choose sparse/dense type when doing tensordot (#349)
- Improve dot performance. (#350)
- Fix np.outer and np.ufunc.outer. (#347)
- Added multi-axis advanced indexing support (#343)
- added method swapaxes to COO (#344)
- Changelog for 0.10.0 (#342)
- Fix signature for clip. (#339)
- Prepare for Numba 0.49. (#337)
- Remove the HTML coverage from Azure as it generates its own. (#334)
- Add error msg to tensordot operation when ndim==0 (#333)
- Try to simplify the numba extension a little (#324)
- Replace linear_loc with ravel_multi_index, which is 3x faster (#330)
- Respect
copy=False
inastype
(#328) - Add Code of Conduct (#327)
- Update issue templates (#325)
- Implement asnumpy. (#322)
- Implement deterministic dask tokenization. (#320)
- Fix setting into numpy slice (#321)
- Remove sparse-dense broadcasting restriction. (#318)
- Add flatten method and outer function. (#317)
- Fix incorrect dtype on empty DOK->COO. (#315)
- 0.9.0 changelog (#313)
- Add changelog for 0.9.0. (#312)
- ENH: Add numba extension support for COO objects (#307)
- Fix attribute access for array_function. (#309)
- Add stack and concatenate (#303)
- Avoid making a copy of
coords
(#296) - add repr_html (#283)
- Diagonal/diagonalize functions (#289)
- Change code formatter to black. (#284)
- Fix indexing for empty lists. (#282)
- Modify the visibility of a lot of modules that should be private. (#280)
- Fix scalar operations in certain cases. (#278)
- Change to range length and remove dead code. (#277)
- Convert Numba lists. (#264)
- array_function test coverage; numpy 1.17; result_type() (#272)
- Allow mixed ndarray-sparse ops where the shape doesn't change. (#275)
- Route gufuncs through array_function. (#274)
- Remove redundant import. (#273)
- array_function suppresses AttributeError (#267)
- Add CSD (#258)
- Modifications to enable sparse xarrays (#261)
- Fix empty tensordot. (#256)
- Move Azure Pipelines to Jobs (#248)
- Add isposinf and isneginf. (#253)
- Add resize method and change reshape (#251)
- Switch badge to Azure Pipelines. (#247)
- Azure pipelines (#246)
- Set up CI with Azure Pipelines [skip ci] (#245)
- Add std and var. (#244)
- Fix 1 size non-empty broadcast. (#243)
- Fix LGTM warnings and improve reduce performance. (#240)
- [WIP] Add array_function support. (#239)
- Support reduce fill_value in specific cases. (#238)
- Restructure requirements. (#236)
- Clarify error messages (#232)
- Drop support for legacy Python 2.7 (#235)
- Fix collections-related DeprecationWarnings on import (#233)
- Fix random incorrect intermediate shape. (#229)
- Fix DOK/COO fill-value interface (#226)
- Add link to brochure. (#223)
- Add pruning of fill-values to COO ctor. (#221)
- Disallow auto-densification. (#220)
- Add a missing space from an error message (#219)
- Fix wrong shape of matmul result when the first input is 2-D (#217)
- [WIP] Add a custom-coded dot product. (#215)
- Fix README docs URL. (#216)
- Add warning on too dense. (#213)
- Add roadmap. (#212)
- Add logo. (#211)
- Configure densification. (#210)
- Fix sorted disclaimer. (#209)
- Fix overflow in reduce. (#208)
- Fix dtype not being preserved with the out kwarg. (#206)
- Fix sparse.dot returning incorrect shape for N-D arrays. (#204)
- Fix Numpy matrix being returned from sparse @ sparse (#203)
- Fix NumPy matrix bug. (#200)
- Add COO.imag, COO.real, COO.conj() (#196)
- Generalise kron to an arbitrary number of dimensions. (#195)
- Add sparse.kron (#194)
- Add order parameter to
COO.reshape
(#193) - A few tweaks to pytest.ini (#192)
- Add COO.mean and sparse.nanmean (#190)
- Add full and full_like (#189)
- Remove
releases
sphinx extension (#188) - Clip (#185)
- Fixup pickle, add copy (#184)
- Add eye, zeros, zeros_like, ones, ones_like (#183)
- tweaked reduce method to return COO with correct fill_value (#181)
- Add support for mixed ndarray-sparse element-wise operations. (#182)
- Allow fill-value on conversion from NumPy. (#180)
- Fix according to RTD requirements. (#178)
- Update changelog and move to the releases package for changelogs. (#177)
- ENH: implement any and all functions (#175)
- Add one-dimensional advanced indexing for a single index. (#172)
- Build devdocs on CircleCI. (#174)
- MAINT: better error messages for initialization (#171)
- Flake8 fixes. (#168)
- Move back to Travis-CI (#167)
- Initial implementation for arbitrary fill values. (#165)
- More complete setup.py. (#162)
- Implement roll (circular shift of elements) (#160)
- Speed up broadcast_to. (#161)
- Compile numba code with nogil=True (#159)
- A range of fixes relating to small coords dtypes (#158)
- Miscellaneous fixes (#157)
- Avoid some unnecessary operations in elemwise. (#156)
- Adding support for saving matrices to files in npz format (#154)
- Update contributing.rst. (#155)
- Refactor and clean format conversions. (#152)
- Inplace ops (#146)
- Unfiy unary and n-ary elemwise (#147)
- Add COO.nonzero method. (#148)
- Make COO canonical in the constructor. (#141)
- Add test results to CircleCI (#142)
- Add names for CircleCI (#140)
- Switch from Travis CI to CircleCI (#139)
- Fix axes normalization bugs (#136)
- Fix codecov again (#137)
- Again CodeCov YAML (#135)
- Fix CodeCov YAML (#134)
- Variety of testing/infrastructure fixes. (#133)
- Numba indexing speedups (#128)
- Fix setup.py (#131)
- Add versioneer and fix CodeCov (#130)
- Numba matching speedup (#127)
- Reorganize coo.py (#116)
- Fix negative axes reductions. (#118)
- Improve CI and packaging (#109)
- Match ufunc.reduce behavior. (#108)
- Update release procedure (#106)
- Add XArray compatibility features (#102)
- Documentation fixes for N-ary broadcasting. (#101)
- Add N-ary broadcasting operations. (#98)
- Merge README content into the main index doc page (#97)
- Enhance dot + tests. (#96)
- Inheritance hierarchy (#92)
- Flatten documentation hierarchy (#90)
- Drop support for Numpy 1.12. (#84)
- Fix set to zero. (#94)
- Update README after repo change. (#91)
- Implement array protocol (#87)
- Add implementation for DOK. (#85)
- Fix large sum. (#83)
- Update contributing.rst. (#76)
- Support mixed sparse-dense support when result is sparse (#75)
- Tox for cross Python-version testing (#77)
- First steps toward documentation (#43)
- Fix CI tests. (#74)
- Fix test_slicing_errors failing for older NumPy versions (#71)
- Update Scipy version in requirements.txt. (#70)
- len() function for COO objects (#68)
- Support left-side np.number elemwise operations. (#67)
- Use higher density for sparse.random in tests (#64)
- Validate .transpose() axes (#61)
- Add lots of indexing features. (#57)
- Add random() function (#41)
- Copy constructor (#55)
- flake8 and coverage in pytest (#59)
- Fix error on empty reduction + tests. (#56)
- Update docs (#54)
- Fix code in readme. (#53)
- Add array_ufunc for call and reduce (#49)
- Fix large concatenations and stacks. (#51)
- Update the readme (#50)
- Fix nnz for scalars. (#48)
- Remove auto densification and unify operator code. (#46)
- Update MANIFEST.in (#45)
- More complete gitignore file (#42)
- Add triu + tril + tests. (#40)
- Add slicing support for ellipsis and None (#37)
- Bitwise ops (#38)
- Added elementwise_binary broadcasting and broadcast_to (#35)
- Improve the source release for PyPI (#23)
- Add @ operator (simplify) (#16)
- Optimize CSR and sorted conversions (#11)
- Fix windows errors around int/long (#12)
- Support multiplication with empty arrays (#8)
- ENH: add logic for binary ufuncs (#6)
🚧 Deprecations
- depr, chore: Enforce deprecations and clean up warnings. (#742)
🎊 Enhancements
- Introduce format factories (#819)
- Add
Array.asformat
method and add backreshape
function. (#800) - ENH: Update MLIR backend to LLVM 20.dev (#799)
- Refactor dtypes (#798)
- Format specification API (#792)
- ENH: Add
sparse_vector
constructor (#791) - ENH: Implement
broadcast_to
function (#782) - ENH: Support 3D COO and cross-rank
reshape
(#784) - ENH: Add counting triangles example (#781)
- feat, perf: Refactor the PoC to support multiple dtypes (#757)
- feat: MLIR backend POC (#755)
- Upgrade
finch-tensor
(#702) - Add
matmul
example (#701) - Add elemwise examples (#697)
- Upgrade
finch-tensor
(#694) - Upgrade
finch-tensor
(#693) - Expand Array API coverage for Numba backend (#691)
- [Finch] API: More creation functions (#669)
- CI: Add
array_api_tests
CI job (#668) - API: Add
sort
andtake
functions for COO format (#627) - API: Add
expand_dims
andflip
functions for COO format (#629) - API: Add set functions [Array API] (#619)
- Size and density properties (#69)
🐞 Bug fixes
- fix: mkdocs Web after chore PR (#747)
- Workaround for macOS CI (#703)
- Upgrade
finch-tensor
(#700) - Update
finch-tensor
(#687)
📚 Documentation
- docs: Convert README to markdown & add logo (#777)
- docs: Add example notebooks. (#759)
- docs: Adding missing docstrings (#756)
- docs: Added
sparse.max
docstring (#730) - docs: Run python files under tutorials (#729)
- docs: Fix how-to guides link on card (#726)
- docs: fixing cards links (#725)
- docs: Website makeover (#724)
- docs: Added docstring for
COO.mT
(#722) - Migrating from sphinx to Material for MkDocs (#715)
🧰 Build system
- BLD: Revert micromamba version to v2 (#805)
- build:
pixi
environment setup (#780) - bld: Upgrade LLVM version to
19.1.0.rc3
(#765)
🔧 Other improvements
- test: Removing asv files plus docs update (#769)
- test: Converting tensordot benchmark to run with CodSpeed (#761)
- ci: Merge MLIR Backend (#758)
- test: Converting elemwise_example.py to CodSpeed benchmark (#749)
- test: Added gcxs to benchmarks to be tested with CodSpeed (#748)
- test: Modified index and slice tests in order to vary ranks (#743)
- test: Adapt benchmarks to use
codspeed
(#741) - test: Benchmark to be run on codspeed (#740)
- ci: Added more templates (#738)
- ci: Correct template extension from
md
toyml
(#737) - ci: Template for bug reporting, upgrade python version for codspeed (#736)
- ci: WIP Benchmarks (#733)
- ci: PR template, improved release-drafter (#728)
- ci: Adding dependabot (#723)
- ci: Adding release drafter (#719)
- Re-word backend selection warning. (#708)
- NumPy 1.x CI. (#705)
- Refactor CI jobs. (#699)
Thank you to all our contributors for making this release possible!
@Carreau, @DavidMertz, @DeaMariaLeon, @DragaDoncila, @EuGig, @GenevieveBuckley, @H4R5H1T-007, @HadrienNU, @Illviljan, @KanzaSheikh, @MHRasmy, @ShadenSmith, @SultanOrazbayev, @ahwillia, @alugowski, @argearriojas, @asmeurer, @bnavigator, @crusaderky, @daissi, @daletovar, @danielballan, @delgadom, @dependabot, @dependabot[bot], @emilmelnikov, @eric-wieser, @fujiisoup, @gforsyth, @ghisvail, @gongliyu, @graingert, @guilhermeleobas, @hameerabbasi, @hugovk, @ivirshup, @jakevdp, @jamestwebber, @jcapriot, @jcmgray, @jcrist, @lgtm-com, @lgtm-com[bot], @lueckem, @mangecoeur, @mikeymezher, @mrocklin, @mtsokol, @nils-werner, @nimroha, @nvictus, @pentschev, @pettni, @pre-commit-ci, @pre-commit-ci[bot], @sarveshbhatnagar, @sayandip18, @simonthor, @smldub, @stsievert, @willow-ahrens, David Mertz and Petter Nilsson