J'ai un tableau de valeurs comme

import numpy as np 
dats = np.array([[r1,x1,y1],[r2,x2,y2],...,[rn,xn,yn]])

Et j'ai besoin de trouver le sous-tableau qui a des éléments tels que les coordonnées xi, yi se trouvent dans un cercle de rayon R autour d'un autre point xp, yp. Voici une solution:

def dats_within_radius(R,xp,yp): 
    temp = np.array([])
    for loop in range(dats.shape[0]):
        r_loop = dats[loop][0]
        x_loop = dats[loop][1]
        y_loop = dats[loop][2]
        if (x_loop-x)**2+(y_loop-y)**2 <= R**2:
            temp = np.append(temp, [r_loop,x_loop,y_loop])
    temp = temp.reshape((int(temp.size/3),3))
    return temp

Il doit y avoir un bien meilleur moyen, non? Quelqu'un peut-il me donner une recommandation?

1
kevinkayaks 17 janv. 2017 à 18:48

2 réponses

Meilleure réponse