Есть массив x_old, и нужно заменить значения этого массива на значения массива x_new. Но, из x_new можно для замены брать только те значения, которые удовлетворяют определенному условию. x_old и x_new хранят координаты точек на плоскости. Условие следующее: из x_new нужно брать только те точки, которые лежат вне эллипса с параметрами xc,yc - центр, а,b - полуоси.
Задачу решает код с циклом: Код:
#!/usr/bin/python
from numpy import *
m=3
xc=0.
yc=0.
a=2.
b=1.
eps=0.1
x_old=ones((m,2),dtype='d')
x_new=ndarray((m,2),dtype='d')
x_new[0][0]=2.;x_new[0][1]=0.
x_new[1][0]=3.;x_new[0][1]=1.
x_new[2][0]=1.;x_new[0][1]=0.
for i in range(m):
if (x_new[i][0]-xc)**2/a/a+(x_new[i][1]-yc)**2/b/b>(1.+eps):
x_old[i]=x_new[i]
print "x_new=",x_new
print "x_old=",x_old