David, that doesn’t work, because np.cumsum(mask)[mask] is always
equal to np.arange(mask.sum())
+ 1. Robert’s answer is correct.

Eric

On Sat, 21 Oct 2017 at 13:12 Daπid <davidmen...@gmail.com> wrote:

On 21 October 2017 at 21:03, Robert Kern <robert.k...@gmail.com> wrote:
>
>> Index with a boolean mask.
>>
>> mask = (tmp_px > 2)
>> px = tmp_px[mask]
>> py = tmp_py[mask]
>> # ... etc.
>>
>>
> That isn't equivalent, note that j only increases when tmp_px > 2. I think
> you can do it with something like:
>
> mask = tmp_px > 2
> j_values = np.cumsum(mask)[mask]
> i_values = np.arange(len(j_values))
>
> px[i_values] = tmp_i[j_values]
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@python.org
> https://mail.python.org/mailman/listinfo/numpy-discussion
>
​
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion

Reply via email to