有什么区别numpy.random.shuffle(x)
and numpy.random.permutation(x)
?
我已阅读文档页面,但当我只想随机洗牌数组的元素时,我无法理解两者之间是否有任何区别。
更准确地说,假设我有一个数组x=[1,4,2,8]
.
如果我想生成 x 的随机排列,那么有什么区别shuffle(x)
and permutation(x)
?
np.random.permutation
有两个区别np.random.shuffle
:
- 如果传递一个数组,它将返回一个打乱的数组copy数组的;
np.random.shuffle
就地打乱数组
- 如果传递一个整数,它将返回一个打乱的范围,即
np.random.shuffle(np.arange(n))
如果 x 是整数,则随机排列 np.arange(x)。如果 x 是一个数组,则制作一个副本并随机打乱元素。
源代码可能有助于理解这一点:
3280 def permutation(self, object x):
...
3307 if isinstance(x, (int, np.integer)):
3308 arr = np.arange(x)
3309 else:
3310 arr = np.array(x)
3311 self.shuffle(arr)
3312 return arr
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)