This is quite helpful. Thanks! Github search: I'm not surprised that many github hits are like homework problems. The big resistance to removing np.matrix early on (~2008) came from educators who wanted a Matrix oriented experience for their students who had recent linear algebra background. It was heavily used for at least a decade in the education setting. That started to wane when Python created the `@` operator. But change is slow. It's been 10 years with `@`.
I very much support Ralf's concerns that this not push SciPy. It would be pushing me after-all. But it is hard to know how to proceed with the transfer from spmatrix to sparray without also knowing something about the support for np.matrix from the numpy devs. But... there's no reason removal of spmatrix needs to happen first. It may be quite natural for both to be moved to a single separated package. Or they could be removed at the same time. We'll have to see what makes sense. Thanks Nathan for the preview of github usage and perspective from the 2.0 release. I'm also pleased to find that github search results for PRs can be sorted by date. While there are 28K PRs involving np.matrix, the recent PRs are almost all dependabot reminding folks to upgrade their dependencies. Of the top 30, 3 were actions to **remove** np.matrix in favor of ndarray. 1 was `scipy.interpolate` (which also mentioned removing support for `np.matrix`, though provided a workaround instead). And the remaining 26 are dependency updates. That takes us back to Aug 30. Jumping to the most recent 80 PRs gave the same type of results, but I didn't bother counting. Almost all of them are dependency updates. Most of the rest are moving away from np.matrix. It is clear that recent activity (as measured by PRs) does not show much activity using np.matrix. Perhaps most importantly, there don't seem to be any courses being run this semester that have students creating PRs using np.matrix. And thanks Marten, Sebastian and Chuck for the nudge to find a way to move forward with the deprecation process. I think the change to `VisibleDeprecationWarning` is a good next step. Hopefully we don't have to wait another 7 years for the following step unless we decide that keeping that code in numpy is the best way to go. No one seems to have argued for just leaving np.matrix in the package forever, but I think it is a reasonable approach (similar to stating that RandomState will remain forever). But given the decline in usage, and the negative impacts of having multiple interfaces to array-like objects, it is probably better to stop supporting matrix at some point. Summary: It seems like eventually removing np.matrix is desirable. The choice of removing versus separating depends somewhat on how easy that is for both devs, and for users. It might be worth a short exploration to see if there is a solution. We should time this so it doesn't negatively impact the transition SciPy sparse is making. They are the main users, and leaving np.matrix as it is costs very little. Action items from this discussion include: - Exploring impact on SciPy of a change to `VisibleDreprecationWarning`, possibly followed by a PR to make the change. - Investigating a light-weight, simple separation package that wouldn't affect user experience much. If that's hard, then we have identified the pain points. If that's easy then it informs the choice of a path forward for both matrix and spmatrix. - Collect info about the current usage of np.matrix, and what type of usage the large existing codebase needs. Put that info into a NEP, along with a summary of the history and current discussion, and a description of our exploration into possible light-weight routes to separation. I don't expect this to be soon -- maybe by next summer -- unless other people get involved. I'm interested in further discussion and suggestions too. FYI Chuck: It looks like Event Horizon Telescope doesn't use np.matrix at all any more. _______________________________________________ NumPy-Discussion mailing list -- numpy-discussion@python.org To unsubscribe send an email to numpy-discussion-le...@python.org https://mail.python.org/mailman3/lists/numpy-discussion.python.org/ Member address: arch...@mail-archive.com