документация Numpy на np.random.permutation
предлагает весь новый код используйте np.random.default_rng()
из пакета Random Generator. Я вижу в документации, что пакет Random Generator стандартизировал генерацию самых разных случайных распределений вокруг BitGenerator по сравнению с использованием Mersenne Twister, с которым я смутно знаком.
Я вижу один недостаток, то, что раньше было одной строкой кода для простых перестановок:
np.random.permutation(10)
теперь превращается в две строки кода, что кажется немного неудобным для такой простой задачи:
rng = np.random.default_rng()
rng.permutation(10)
- Почему этот новый подход лучше предыдущего?
- И почему бы существующим методам, таким как
np.random.permutation
, просто не обернуть этот новый предпочтительный метод? - Есть ли веская причина не использовать этот новый метод как однострочный
np.random.default_rng().permutation(10)
, предполагая, что он не вызывается в больших объемах? - Есть ли аргумент для переключения существующего кода на этот метод?
default_rng
один раз в начале вашего скрипта и будете использовать его повторно сperumutation
,randint
и т. д. Для одноразового случайного вызова я бы не стал прилагать никаких дополнительных усилий для использования нового упаковка. Я не использовал его при ответе на вопросы SO. При добавлении новых функций обычно безопаснее добавлять их с новыми вызовами и интерфейсом, а не заменять старые. Меньше риск испортить существующий код. - person hpaulj   schedule 17.06.2020