Выборка из точечного шаблона

#numpy

#numpy

Вопрос:

У меня есть трехмерное распределение точек в массиве numpy, сформированном из 1 000 000 точек, давайте назовем это points . Я хотел бы взять 10% однородную выборку, чтобы точки были равномерно распределены (например, каждая 10-я точка)

Я думаю, это то, что я ищу, но это генерирует данные, как мне выполнить выборку существующих данных?

 numpy.random.uniform(low=0.0, high=1.0, size=None) 
  

Комментарии:

1. Вы могли бы поделиться примером ваших данных с желаемым результатом.

Ответ №1:

В случае, если я правильно понял проблему, вам просто нужно будет сделать это:

 points[::10]
  

чтобы получить каждый 10-й элемент points .

Если это не то, что вы хотели, пожалуйста, уточните.

Комментарии:

1. в OP следует уточнить, все же я думаю, что он имеет в виду 3D-точки, т. е. Nx3 матрицу размеров (x, y, z) , а не 3D-матрицу.

2. Извините, допустил ошибку с запятыми там, это то, что я имел в виду. Но да, разъяснение было бы неплохо.

Ответ №2:

простая индексация сделает это:

 # data
x = numpy.random.uniform(low=0.0, high=1.0, size=(300,3))

#sampled result
sample_step = 10
y = x[:-1:sample_step]