Selecting specific array positions in Python

Question:

sorry for the easy question but I’m new to Python.
I have a set of points with these coordinates:

x=part.points[:,0]
y=part.points[:,1]
z=part.points[:,2]

And I’d like to select only the points with z>0.5 and z<0.6. I guess I have to use a where operator but it doesn’t work. I mean when I type

import numarray

I get that this module is not defined. Are there other solution to do what I need?

Asked By: Brian

||

Answers:

Here is how it can be done with numpy:

In [34]: import numpy as np

In [35]: points = np.random.rand(100, 3)

In [36]: points[(0.5 < points[:,2]) & (points[:,2] < 0.6)]
Out[36]: 
array([[ 0.71524853,  0.09490989,  0.5053525 ],
       [ 0.71668105,  0.88735685,  0.52713089],
       [ 0.17376858,  0.28024362,  0.56543163],
       [ 0.97134163,  0.95498013,  0.57372901],
       [ 0.35755719,  0.70042594,  0.56379507],
       [ 0.31666818,  0.22316937,  0.50953021],
       [ 0.87787189,  0.35648375,  0.52159669],
       [ 0.77436531,  0.84893017,  0.51721675],
       [ 0.88997082,  0.14993883,  0.57662781],
       [ 0.40895133,  0.95472591,  0.58294156],
       [ 0.71299491,  0.09611201,  0.56360363],
       [ 0.68517509,  0.46743956,  0.54170775],
       [ 0.04632064,  0.56637214,  0.5319611 ],
       [ 0.7708119 ,  0.84934734,  0.58631465],
       [ 0.73931364,  0.34690535,  0.55264761]])
Answered By: NPE
import numpy as np
np.where(...)

docs

numarray is deprecated in favour of numpy

Answered By: Katriel
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.