Skip to content

`sparse` v0.16.0b2

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 09 Dec 11:13
· 9 commits to refs/heads/main since this release
ee9f584

Changes

  • Update sparse_finch notebook and upgrade finch-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 and scipy.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 to Numba (#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 from asarray. (#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 to sparse.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 and argmin (#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 in astype (#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 back reshape 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 and take functions for COO format (#627)
  • API: Add expand_dims and flip 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 to yml (#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