2016-05-21 2 views
0

Есть ли какая-то удобная реализация функции rl-функции Matlab в numpy, которая случайным образом выбирает K элементов из полностью M (M> K) элементов и возвращает выбранный индекс?numpy: случайный выбор K элементов из общего количества M (M> K) предметов?

В Matlab,

randperm(100,10) 

ans = 

82 90 13 89 61 10 27 51 97 88 

ответ

3

Да, с numpy.random.choice function.

>>> numpy.random.choice(100, 10, replace=False) 
array([89, 99, 27, 39, 80, 31, 6, 0, 40, 93]) 

Обратите внимание, что результирующий диапазон от 0 до M-1. Если вам нужно от 1 до М, как MATLAB, добавить 1 к результату:

>>> numpy.random.choice(100, 10, replace=False) + 1 
array([ 28, 23, 15, 90, 18, 65, 86, 100, 99, 1]) 
+0

велика, она помогает мне: - –