I am creating a random 3d data set in Matematica 12.1. Then I am selecting all points that are in a certain range of one axis.

The same I am doing in Python (same computer, Python 3.8.5, numpy 1.19.2)

RESULT:

It seems that Python is able to select much faster (1.7 sec) than Mathematica (5.2 sec). What is the reason for that?

For selection in Mathematica I used the fastest solution, which is by Carl Woll (see here at bottom).

```
SeedRandom(1);
coordinates = RandomReal(10, {100000000, 3});
selectedCoordinates =
Pick(coordinates,
Unitize@Clip(coordinates((All, 1)), {6, 7}, {0, 0}),
1); // AbsoluteTiming
{5.16326, Null}
Dimensions(coordinates)
{100000000, 3}
Dimensions(selectedCoordinates)
{10003201, 3}
```

PYTHON CODE:

```
import time
import numpy as np
np.random.seed(1)
coordinates = np.random.random_sample((100000000,3))*10
start = time.time()
selectedCoordinates = coordinates((coordinates(:,0) > 6) & (coordinates(:,0) < 7))
end = time.time()
print(end-start)
print(coordinates.shape)
print(selectedCoordinates.shape)
1.6979997158050537
(100000000, 3)
(9997954, 3)
```