Browse Source

Surface.select_vertices: replace slow numpy.take() with 12000x faster list comprehension

Fabian Peter Hammerle 5 years ago
parent
commit
b6185e140f
1 changed files with 1 additions and 3 deletions
  1. 1 3
      freesurfer_surface/__init__.py

+ 1 - 3
freesurfer_surface/__init__.py

@@ -508,6 +508,4 @@ class Surface:
 
     def select_vertices(self, vertex_indices: typing.Iterable[int]) \
             -> numpy.ndarray:
-        if not hasattr(vertex_indices, '__getitem__'):
-            vertex_indices = list(vertex_indices)
-        return numpy.take(self.vertices, indices=vertex_indices, axis=0)
+        return [self.vertices[idx] for idx in vertex_indices]