[Numpy-discussion] Numpy BoF at SciPy 2014 - quick report

Sebastian Berg sebastian at sipsolutions.net
Fri Jul 18 04:03:59 EDT 2014


On Do, 2014-07-17 at 09:48 -0400, Robert Lupton the Good wrote:
> Having just re-read the PEP I'm concerned that this proposal leaves at least one major (?) trap for naive users, namely
> 	x = np.array([1, 10])
> 	print X.T at x
> which will print 101, not [[1, 10], [10, 100]]
> 
> Yes, I know why this is happening but it's still a problem -- the user said, "I'm thinking matrices" when they wrote @ but the x.T had done the "wrong" thing before the @ kicked in.  And yes, a savvy user would have written x = np.ones([[1, 10]]) (but then np.dot(x, x.T) isn't a scalar).
> 
> This is the way things are at present, but with the new @ syntax coming in I think we should consider fixing it.
> 
> I can think of three possibilities:
> 	1. Leave this as a trap for the unwary, and a reason for people to stick to np.matrix (np.matrix([1, 10]) behaves "correctly")
> 	2. Make x.T a syntax error for 1-D arrays.  It's a no-op and IMHO a trap. 
> 	3. Make x.T promote the shape == (2,) array to (1, 2) and return a (2, 1) array.  This may be too magic, but it's my preferred solution.
> 

Making it a warning may be another option. Changing `.T` to promote to
2-d (also maybe to actually only transpose the last two axes for higher
D arrays), could be nice, but getting there might take quite a long
FutureWarning or even Error -> new feature cycle...

- Sebastian

> 						R
> 
> > Implementation of @ (matrix multiplication)
> >  - will be in 3.5 ~ 18months
> >  - no work started yet -- have to make sure we do it.
> >  - @@ was not added.
> >  - The PEP for numpy is well-defined. Not much thinking to be done. (Good for a sprint)
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion





More information about the NumPy-Discussion mailing list