On Fri, Sep 27, 2013 at 8:27 AM, Sebastian Berg <sebast...@sipsolutions.net>wrote:
> Hey, > > since I am working on the indexing. I was wondering about a few smaller > things: > > * 0-d boolean array, `np.array(0)[True]` (will work now) would > give np.array([0]) as a copy, instead of the original array. > I guess I could add a FutureWarning or so, but I am not sure > and overall the chance of creating bugs seems low. > > (The boolean index should always add 1 dimension and here, > remove 0 dimensions -> 1-d result.) > > * All index operations return a view; never the object. This > means that `v = arr[...]` is slightly slower. But since it > does not affect `arr[...] = vals`, I think the speed > implications are negligible. > > * Does anyone have an idea if there is a way to change the subclass > logic that view based item setting is implemented as: > np.asarray(subclass[index]) = vals > > I somewhat think the subclass should rather implement `__setitem__` > instead of relying on numpy calling its `__getitem__`, but I > don't see how it can be changed. > > * Still thinking a bit about implementing a keepdims keyword or > function, to handle matrix type logic mostly in the C-code. > > And most importantly, is there any behaviour thing in the index > machinery that is bugging you, which I may have forgotten until now? > > - Sebastian > > Boolean indexing could use a facelift. First, consider the following (albeit minor) annoyance: >>> import numpy as np >>> a = np.arange(5) >>> a[[True, False, True, False, True]] array([1, 0, 1, 0, 1]) >>> b = np.array([True, False, True, False, True]) >>> a[b] array([0, 2, 4]) Next, it would be nice if boolean indexing returned a view (wishful thinking, I know): >>> c = a[b] >>> c array([0, 2, 4]) >>> c[1] = 7 >>> c array([0, 7, 4]) >>> a array([0, 1, 2, 3, 4]) Cheers! Ben Root
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion