On Wednesday, March 7, 2012, Neal Becker <ndbecker2@gmail.com> wrote:
Charles R Harris wrote:
On Wed, Mar 7, 2012 at 1:05 PM, Neal Becker <ndbecker2@gmail.com> wrote:
I'm wondering what is the use for the ignored data feature?
I can use:
A[valid_A_indexes] = whatever
to process only the 'non-ignored' portions of A. So at least some simple cases of ignored data are already supported without introducing a new type.
OTOH:
w = A[valid_A_indexes]
will copy A's data, and subsequent use of
w[:] = something
will not update A.
Is this the reason for wanting the ignored data feature?
Suppose you are working with plotted data and want to turn points on/off by clicking on them interactively to see how that affects a fit. Why make multiple copies, change sizes, destroy data, and all that nonsense? Just have the click update the mask and redraw.
Chuck
But does
some_func (A[valid_data_mask])
actually perform a copy?
Yes! If it isn't sliced, or accessed by a scalar index, then you are given a copy. Fancy indexing and Boolean indexing will not return a view. Note that assignments to a Boolean-indexed array by a scalar is special-cased. I.e., A[valid_points] = 5 will do what you expect. But, A[valid_points] += 5 may not, IIRC. Ben Root