Thanks for the suggestion, but that returns a list, not an array. Also I 
wanted a mix of arbitrary indices and a range (which could be arbitrarily 
long). Using your idea, I then tried:

np.array([a[i] for i in [1,2,4, range(7,17,2)]])

but that didn't work. Also it's a bit awkward compared to the elegance of 
Julia.

On Tuesday, April 5, 2016 at 10:32:40 AM UTC+2, Sisyphuss wrote:
>
> You can use list compression in python
>
> [a[i] for i in [1,2,4,7,9] ]
>
> On Apr 5, 2016 8:55 AM, "DNF" <> wrote:
> >
> > Typo, I meant to type:
> >
> > Python 3.5
> > a[i*len(a)//n:(i+1)*len(a)//n]
> >
> > Julia:
> > a[1+i*end÷n:(i+1)end÷n]
> >
> > I'm just learning Python, and must say I find indexing in Python to be 
> very awkward compared to Julia or Matlab. Do you have any suggestion for 
> how I should do this in Python?
> > a[[1; 4; 7:2:15]]
> > So far I've got:
> > a[np.concatenate(([1,4], np.arange(7,17,2)))]
> >
> >
> >
> >
> > On Tuesday, April 5, 2016 at 8:46:57 AM UTC+2, DNF wrote:
> >>
> >>
> >> On Saturday, April 2, 2016 at 1:55:55 PM UTC+2, Spiritus Pap wrote:
> >>>
> >>> A simple example why it makes my life hard: Assume there is an array 
> of size 100, and i want to take the i_th portion of it out of n. This is a 
> common scenario for research-code, at least for me and my friends.
> >>> In python:
> >>> a[i*100/n:(i+1)*100/n]
> >>> In julia:
> >>> a[1+div(i*100,n):div((i+1)*100,n)]
> >>>
> >>> A lot more cumbersome in julia, and it is annoying and unattractive. 
> This is just a simple example.
> >>
> >>
> >> Python 3.5
> >> a[i*len(a)//n:(i+1)*len(a)//n]
> >>
> >> Julia:
> >> a[1+i*end÷5:(i+1)end÷5]
> >>
>

Reply via email to