<p dir="auto">As <code class="notranslate">numpy.matrix</code> <a href="https://github.com/numpy/numpy/pull/10142" data-hovercard-type="pull_request" data-hovercard-url="/numpy/numpy/pull/10142/hovercard">will be removed</a>, we should remove SciPy's dependency in 1.1.0:</p>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Add <code class="notranslate">sparray</code>:
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> bsr_array</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> coo_array</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> csc_array</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> csr_array</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> dia_array</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> dok_array</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> lil_array</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> sparray</li>
</ul>
</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> Deprecate <code class="notranslate">spmatrix</code>.</li>
</ul>
<p dir="auto">While sitting with <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stefanv/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stefanv">@stefanv</a> last week we discussed (and then <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stefanv/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stefanv">@stefanv</a> started implementing) sparse array classes that use the same code as the existing matrix classes, but instead satisfy the ndarray interface (only up to two dimensions).  For example slicing out rows would result in 1d arrays rather than 2d matrices, the <code class="notranslate">*</code> operator means elementwise multiply rather than matrix multiply, etc..</p>
<p dir="auto">This would be valuable for a number of communities and, in particular, anyone trying to use sparse arrays and numpy arrays interchangably, as happens in Pandas, Scikit-Learn, and Dask.array.</p>
<p dir="auto">I thought I'd raise this issue to track this work (and also to subtly prod <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stefanv/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stefanv">@stefanv</a>).</p>
<p dir="auto">Also cc <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/NelleV/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/NelleV">@NelleV</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/njsmith/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/njsmith">@njsmith</a></p>