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
> > > [email protected]
> > > http://mail.scipy.org/mailman/listinfo/numpy-discussion
> > >
> >
> >
> > _______________________________________________
> > NumPy-Discussion mailing list
> > [email protected]
> > http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
> _______________________________________________
> NumPy-Discussion mailing list
> [email protected]
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
signature.asc
Description: This is a digitally signed message part
_______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
