Numpy.random中shuffle与permutation的区别

shuffle与permutation的区别

函数shuffle与permutation都是对原来的数组进行重新洗牌(即随机打乱原来的元素顺序);区别在于shuffle直接在原来的数组上进行操作,改变原来数组的顺序,无返回值。而permutation不直接在原来的数组上进行操作,而是返回一个新的打乱顺序的数组,并不改变原来的数组。

示例:

a = np.arange(12)
print a
np.random.shuffle(a)
print a
print 
a = np.arange(12)
print a
b = np.random.permutation(a)
print b
print a
输出:

[ 0  1  2  3  4  5  6  7  8  9 10 11]
[11  6  4 10  3  0  7  1  9  2  5  8]

[ 0  1  2  3  4  5  6  7  8  9 10 11]
[10  4  8 11  1  7  6  2  0  9  5  3]
[ 0  1  2  3  4  5  6  7  8  9 10 11]




  • 40
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
`numpy.random.permutation` 模块实现了对给定序列进行随机排列的功能。具体而言,它的主要功能是生成一个随机排列的副本或重新排列原始序列。 `numpy.random.permutation` 模块的功能包括: 1. 随机排列:通过调用 `numpy.random.permutation` 函数,可以生成给定序列的一个随机排列。它会返回一个新的数组,其包含对原始序列进行随机重排的元素。 2. 原地打乱:通过调用 `numpy.random.shuffle` 函数,可以在原始序列上进行原地打乱操作,即对原数组进行随机重排。这样可以直接修改原始数据,而无需创建新的副本。 这两种功能可以应用于很多场景,例如: - 数据集的随机化:在机器学习,常常需要对数据集进行随机化处理,以防止模型学习到数据的顺序或相关性。可以使用 `numpy.random.permutation` 生成随机的索引序列,然后根据这个序列重新排列数据集。 - 随机采样:在统计学和数据分析,经常需要进行随机采样。可以使用 `numpy.random.permutation` 对数据进行随机排列,然后选择前面的一部分作为采样结果。 - 数据增强:在深度学习,数据增强是一种常用的技术,通过对训练数据进行随机变换来增加数据的多样性。可以使用 `numpy.random.permutation` 对数据进行随机排列,然后根据随机排列的索引对数据进行变换。 总之,`numpy.random.permutation` 模块提供了一种方便的方式来生成随机排列的副本或对原始序列进行重新排列,可以用于数据处理、采样、增强等各种应用场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值