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