On 10/07/2018 10:32 AM, Mark Harfouche wrote:
With `np.ndrange` it can look something like this:
```
c = np.empty((4, 4), dtype=object)
# ... compute on c
for i in np.ndrange(c.shape)[:, 1:-1]:
c[i] # = some operation on c[i] that depends on the index i
```
very pythonic, very familiar to numpy users
So if I understand, this does the same as `np.ndindex` but allows
numpy-like slicing of the returned generator object, as requested in #6393.
I don't like the duplication in functionality between ndindex and
ndrange here. Better rather to add the slicing functionality to ndindex,
than create a whole new nearly-identical function. np.ndindex is
already a somewhat obscure and discouraged method since it is usually
better to find a vectorized numpy operation instead of a for loop, and I
don't like adding more obscure functions.
But as an improvement to np.ndindex, I think adding this functionality
seems good if it can be nicely implemented. Maybe there is a way to use
the same optimization tricks as in the current implementation of ndindex
but allow different stop/step? A simple wrapper of ndindex?
Cheers,
Allan
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion