#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]