在Python中选择特定的数组位置

时间:2011-07-27 09:40:37

标签: python arrays where

对不起这个简单的问题,但我是Python的新手。 我有一组带有这些坐标的点:

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

并且我想仅选择z> 0.5且z <0.6的点。我想我必须使用where运算符,但它不起作用。我的意思是当我输入

import numarray

我知道这个模块没有定义。还有其他解决方案可以做我需要的吗?

2 个答案:

答案 0 :(得分:1)

以下是使用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]])

答案 1 :(得分:0)

import numpy as np
np.where(...)

docs

numarray已被弃用,转而使用numpy