@@ -63,18 +63,25 @@ possible then. Finally, resolving open AIX build issues would help users.
63
63
Implement sparse arrays in addition to sparse matrices
64
64
------------------------------------------------------
65
65
66
- The sparse matrix formats are mostly feature-complete, however the main issue
66
+ SciPy sparse matrices are being replaced by sparse arrays.
67
+ The sparse matrix formats are mostly feature-complete, however their main issue
67
68
is that they act like ``numpy.matrix `` (which will be deprecated in NumPy at
68
69
some point). What we want is sparse *arrays * that act like ``numpy.ndarray ``
69
70
(See discussion at `gh-18915 <https://github.com/scipy/scipy/issues/18915 >`_).
70
- Sparse arrays have largely been implemented in ``scipy.sparse `` at this time.
71
- Some functionality is still being completed. The future plan is:
72
-
73
- - Provide a feature-complete sparse array API (including 1D-array).
74
- - Extend sparse array API to 1D arrays:
75
- - COO, CSR and DOK formats.
76
- - The CSR 1D format uses 2D CSR code to do 1D things like
77
- indexing/min-max/arithmetic.
71
+ Sparse arrays support all features of sparse matrices as of 1.15.
72
+ In addition to 2D arrays, 1D sparse arrays are supported in DOK, COO, CSR formats.
73
+ Further functionality e.g. nD array support and broadcasting for some operations
74
+ is being developed. The future plan is:
75
+
76
+ - Extend sparse array API to nD arrays:
77
+ - COO, CSR and DOK formats. COO format already partially in place.
78
+ - The nD formats use 2D CSR code to do nD things like
79
+ indexing/min-max/arithmetic.
80
+ - Sparse array binary operations will support broadcasting in some settings.
81
+ Broadcasting is tricky for sparse arrays because it leans heavily on the strided
82
+ memory model of dense arrays, and so does not always fit sparse data formats.
83
+ Our optimistic goal is to support broadcasting for all operations where that
84
+ makes sense for sparse data structures. We start with binary operations like `A + B `.
78
85
- Help other libraries convert to sparse arrays from sparse matrices.
79
86
Create transition guide and helpful scripts to flag code that needs changing.
80
87
- Deprecate and then remove "sparse matrix" in favor of "sparse array".
0 commit comments