Hi Hameer, I do not think we should change `asanyarray` itself to special-case matrix; rather, we could start converting `asarray` to `asanyarray` and solve the problems that produces for matrices in `matrix` itself (e.g., by overriding the relevant function with `__array_function__`).
I think the idea of providing an `__anyarray__` method (in analogy with `__array__`) might work. Indeed, the default in `ndarray` (and thus all its subclasses) could be to let it return `self` and to override it for `matrix` to return an ndarray view. All the best, Marten p.s. Note that we are already giving PendingDeprecationWarning for matrix; https://github.com/numpy/numpy/pull/10142. On Sat, Nov 10, 2018 at 11:02 AM Matti Picus <matti.pi...@gmail.com> wrote: > On 9/11/18 5:09 pm, Nathaniel Smith wrote: > > On Fri, Nov 9, 2018 at 4:59 PM, Stephan Hoyer <sho...@gmail.com> wrote: > >> On Fri, Nov 9, 2018 at 6:46 PM Nathaniel Smith <n...@pobox.com> wrote: > >>> But matrix isn't the only problem with asanyarray. np.ma also violates > >>> Liskov. No doubt there are other problematic ndarray subclasses out > >>> there too... > >>> > >>> > >>> Please forgive my ignorance (I don't really use mask arrays), but how > >>> specifically do masked arrays violate Liskov? In most cases shouldn't > they > >>> work the same as base numpy arrays, except with operations keeping > track of > >>> masks? > > Since many operations silently skip over masked values, the > > computation semantics are different. For example, in a regular array, > > sum()/size() == mean(), but with a masked array these are totally > > different operations. So if you have code that was written for regular > > arrays, but pass in a masked array, there's a solid chance that it > > will silently return nonsensical results. > > > > (This is why it's better for NAs to propagate by default.) > > > > -n > > > Echos of the discussions in neps 12, 24, 25, 26. http://www.numpy.org/neps > > > Matti > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@python.org > https://mail.python.org/mailman/listinfo/numpy-discussion >
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion