[Numpy-discussion] Matrix Class

Sebastian Berg sebastian at sipsolutions.net
Wed Feb 11 12:19:25 EST 2015


On Mi, 2015-02-11 at 11:38 -0500, cjw wrote:
> 
> On 11-Feb-15 10:47 AM, Sebastian Berg wrote:
> 
> > On Di, 2015-02-10 at 15:07 -0700, cjw wrote:
> > > It seems to be agreed that there are weaknesses in the existing Numpy Matrix
> > > Class.
> > > 
> > > Some problems are illustrated below.
> > > 
> > Not to delve deeply into a discussion, but unfortunately, there seem far
> > more fundamental problems because of the always 2-D thing and the simple
> > fact that matrix is more of a second class citizen in numpy (or in other
> > words a lot of this is just the general fact that it is an ndarray
> > subclass).
> Thanks Sebastian,
> 
> We'll have to see what comes out of the discussion.
> 
> I would be grateful if you could expand on the "always 2D thing".  Is
> there a need for a collection of matrices, where a function is applied
> to each component of the collection?
> 

No, I just mean the fact that a matrix is always 2D. This makes some
things like some indexing operations awkward and some functions that
expect a numpy array (but think they can handle subclasses fine) may
just plain brake. And then ndarray subclasses are just a bit
problematic....

In short, you cannot generally expect a function which works great with
arrays to also work great with matrices, I believe. this is true for
some things within numpy and certainly for third party libraries I am
sure.

- Sebastian

> Colin W.
> > 
> > I think some of these issues were summarized in the discussion about the
> > @ operator. I am not saying that a matrix class separate from numpy
> > cannot solve these, but within numpy it seems hard.
> > 
> > 
> > > I'll try to put some suggestions over the coming weeks and would appreciate
> > > comments.
> > > 
> > > Colin W.
> > > 
> > > Test Script:
> > > 
> > > if __name__ == '__main__':
> > >     a= mat([4, 5, 6])                   # Good
> > >     print('a: ', a)
> > >     b= mat([4, '5', 6])                 # Not the expected result
> > >     print('b: ', b)
> > >     c= mat([[4, 5, 6], [7, 8]])         # Wrongly accepted as rectangular
> > >     print('c: ', c)
> > >     d= mat([[1, 2, 3]])
> > >     try:
> > >         d[0, 1]= 'b'                    # Correctly flagged, not numeric
> > >     except ValueError:
> > >         print("d[0, 1]= 'b'             # Correctly flagged, not numeric", '
> > > ValueError')
> > >     print('d: ', d)
> > > 
> > > Result:
> > > 
> > > *** Python 2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit
> > > (AMD64)] on win32. ***
> > > a:  [[4 5 6]]
> > > b:  [['4' '5' '6']]
> > > c:  [[[4, 5, 6] [7, 8]]]
> > > d[0, 1]= 'b'             # Correctly flagged, not numeric  ValueError
> > > d:  [[1 2 3]]
> > > 
> > > 
> > > 
> > > 
> > > --
> > > View this message in context: http://numpy-discussion.10968.n7.nabble.com/Matrix-Class-tp39719.html
> > > Sent from the Numpy-discussion mailing list archive at Nabble.com.
> > > _______________________________________________
> > > NumPy-Discussion mailing list
> > > NumPy-Discussion at scipy.org
> > > http://mail.scipy.org/mailman/listinfo/numpy-discussion
> > > 
> > 
> > 
> > _______________________________________________
> > NumPy-Discussion mailing list
> > NumPy-Discussion at scipy.org
> > http://mail.scipy.org/mailman/listinfo/numpy-discussion
> 
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20150211/3799d767/attachment.sig>


More information about the NumPy-Discussion mailing list