I have the following code using numpy arrays but it works very slow :

# Intersection of an octree and a trajectory

def intersection(octree, trajectory):

# Initialize numpy arrays

ox = octree.get("x")

oy = octree.get("y")

oz = octree.get("z")

oe = octree.get("extent")/2

tx = trajectory.get("x")

ty = trajectory.get("y")

tz = trajectory.get("z")

result = np.zeros(np.size(ox))

# Loop over elements

for i in range(0, np.size(tx)):

for j in range(0, np.size(ox)):

if (tx[i] > ox[j]-oe[j] and

tx[i] < ox[j]+oe[j] and

ty[i] > oy[j]-oe[j] and

ty[i] < oy[j]+oe[j] and

tz[i] > oz[j]-oe[j] and

tz[i] < oz[j]+oe[j]):

result[j] += 1

# Finalize

return result

How can I rewrite the function to speed up the calculation?