[Numpy-discussion] asanyarray vs. asarray

Eric Wieser wieser.eric+numpy at gmail.com
Tue Oct 30 00:47:54 EDT 2018


The latter - changing the behavior of multiplication breaks the principle.

But this is not the main reason for deprecating matrix - almost all of the
problems I’ve seen have been caused by the way that matrices behave when
sliced. The way that m[i][j] and m[i,j] are different is just one example
of this, the fact that they must be 2d is another.

Matrices behaving differently on multiplication isn’t super different in my
mind to how string arrays fail to multiply at all.

Eric

On Mon, 29 Oct 2018 at 20:54 Ralf Gommers <ralf.gommers at gmail.com> wrote:

On Mon, Oct 29, 2018 at 4:31 PM Chris Barker <chris.barker at noaa.gov> wrote:
>
>> On Fri, Oct 26, 2018 at 7:12 PM, Travis Oliphant <teoliphant at gmail.com>
>> wrote:
>>
>>
>>>  agree that we can stop bashing subclasses in general.   The problem
>>> with numpy subclasses is that they were made without adherence to SOLID:
>>> https://en.wikipedia.org/wiki/SOLID.  In particular the Liskov
>>> substitution principle:
>>> https://en.wikipedia.org/wiki/Liskov_substitution_principle .
>>>
>>
>> ...
>>
>>
>>> did not properly apply them in creating np.matrix which clearly violates
>>> the substitution principle.
>>>
>>
>> So -- could a matrix subclass be made "properly"? or is that an example
>> of something that should not have been a subclass?
>>
>
> The latter - changing the behavior of multiplication breaks the principle.
>
> Ralf
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at python.org
> https://mail.python.org/mailman/listinfo/numpy-discussion
>
​
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20181029/cc86d207/attachment-0001.html>


More information about the NumPy-Discussion mailing list