Выбор конкретных позиций массива в Python - PullRequest
0 голосов
/ 27 июля 2011

извините за простой вопрос, но я новичок в Python.У меня есть набор точек с этими координатами:

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

И я бы хотел выбрать только точки с z> 0,5 и z <0,6.Я предполагаю, что должен использовать оператор where, но он не работает.Я имею в виду, когда я набираю </p>

import numarray

, я получаю, что этот модуль не определен.Есть ли другое решение, чтобы делать то, что мне нужно?

Ответы [ 2 ]

1 голос
/ 27 июля 2011

Вот как это можно сделать с 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]])
0 голосов
/ 27 июля 2011
import numpy as np
np.where(...)

* документы 1003 *

numarray не рекомендуется в пользу numpy

...