pydata / sparse

Sparse multi-dimensional arrays for the PyData ecosystem
https://sparse.pydata.org
BSD 3-Clause "New" or "Revised" License
585 stars 125 forks source link

Support for Fortran order in COO.flatten() #603

Open Transurgeon opened 1 year ago

Transurgeon commented 1 year ago

Is your feature request related to a problem? Please describe. I am currently doing a GSoC project for cvxpy and we need to use 3d sparse matrices. The way we process matrices in the backend (using variables on one axis and constraints on another), it is more intuitive to store the data in column-major format as it makes the problem readable. Hence, we made a design decision to use fortran order for all matrix operations. Currently, we are trying to move from scipy.sparse to using your sparse library and this missing API flag is the main obstacle in doing so.

Describe the solution you'd like I would like to have flatten in fortran (column major order) for increased compatibility with NumPy. Another API that is missing and could be nice to have is expand_dims or also atleast_2d.

I would be happy to make a PR for this, if someone could guide me on how to get started.

hameerabbasi commented 8 months ago

Hello, @Transurgeon thanks for the interest, this would certainly be appreciated. I guess this can be implemented in the following way:

There's not much more to it really. A PR would be appreciated.