how to improve this cycle (extracting data from structured array)?

Alexzive zasaconsulting at gmail.com
Thu Feb 11 15:16:12 CET 2010


On Feb 11, 1:08 pm, Tim Chase <python.l... at tim.thechases.com> wrote:
> Alexzive wrote:
> > I am just wondering if there is a quick way to improve this algorithm
> > [N is a structured array which hold info about the nodes n of a finite
> > element mesh, and n is about 300.000). I need to extract info from N
> > and put it in to a 3*n matrix NN which I reshape then with numpy. I
> > think to "append" is quite unefficient:
>
> > ***********************************************************
> > N = odb.rootAssembly.instances['PART-1-1'].nodes
>
> > NN=[]
>
> > B=[0,0,0]
> >  #auxsiliar vector
> > for i in range(len(N)):
> >     B[0] = N[i].label
> >     B[1] = N[i].coordinates[0]
> >     B[2] = N[i].coordinates[1]
> >     NN = append(NN,B)
>
> Usually this would be written with a list-comprehension,
> something like
>
>    nn = [(x.label, x.coordinates[0], x.coordinates[1])
>          for x in N]
>
> or if you really need lists-of-lists instead of lists-of-tuples:
>
>    nn = [[x.label, x.coordinates[0], x.coordinates[1]]
>          for x in N]
>
> -tkc

yeah, much better thanks!
Alex



More information about the Python-list mailing list