美文网首页
numpy 打乱次序结果不同和相同

numpy 打乱次序结果不同和相同

作者: 逍遥_yjz | 来源:发表于2021-11-05 16:55 被阅读0次

1. 打乱次序结果不同

np.random.permutation与np.random.shuffle有两处不同:

  • 如果传给permutation一个矩阵,它会返回一个洗牌后的矩阵副本;而shuffle只是对一个矩阵进行洗牌,无返回值。

  • 如果传入一个整数,它会返回一个洗牌后的arange。

1.1 无返回值

**np.random.shuffle **

arr = np.arange(9).reshape((3, 3))
print(arr)
'''打乱次序'''
np.random.shuffle(arr)
print(arr)
[[0 1 2]
 [3 4 5]
 [6 7 8]]

[[6 7 8]
 [0 1 2]
 [3 4 5]]

1.2 有返回值

permutation()

train_data = np.arange(21).reshape((7,3))
train_label = np.array(['a1','a2','a3','a4','a5','a6','a7'])
print(train_data)
print(train_label)

shuffle_ix = np.random.permutation(np.arange(len(train_data)))
train_data = train_data[shuffle_ix]
train_label = train_label[shuffle_ix]
print(train_data)
print(train_label)

输出:

[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]
 [12 13 14]
 [15 16 17]
 [18 19 20]]
['a1' 'a2' 'a3' 'a4' 'a5' 'a6' 'a7']

[[ 6  7  8]
 [18 19 20]
 [12 13 14]
 [ 0  1  2]
 [ 9 10 11]
 [ 3  4  5]
 [15 16 17]]
['a3' 'a7' 'a5' 'a1' 'a4' 'a2' 'a6']

2. 打乱次序结果相同

使用rng = np.random.default_rng(12345)语句重置种子,这样混洗之后结果相同

当然rng = np.random.default_rng() ,混洗后结果不相同

train_data = np.arange(21).reshape((7,3))
train_label = np.array(['a1','a2','a3','a4','a5','a6','a7'])
print(train_data)
print(train_label)
index_list = list(range(len(train_label)))
rng = np.random.default_rng(12345)
rng.shuffle(index_list)
print(index_list)
shuffle_ix = index_list

#shuffle_ix = np.random.permutation(np.arange(len(train_data)))
train_data = train_data[shuffle_ix]
train_label = train_label[shuffle_ix]
print(train_data)
print(train_label)

多次运行的结果发现一样的,输出:

[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]
 [12 13 14]
 [15 16 17]
 [18 19 20]]
['a1' 'a2' 'a3' 'a4' 'a5' 'a6' 'a7']

[4, 3, 0, 2, 1, 6, 5]
[[12 13 14]
 [ 9 10 11]
 [ 0  1  2]
 [ 6  7  8]
 [ 3  4  5]
 [18 19 20]
 [15 16 17]]
['a5' 'a4' 'a1' 'a3' 'a2' 'a7' 'a6']

相关文章

  • numpy 打乱次序结果不同和相同

    1. 打乱次序结果不同 np.random.permutation与np.random.shuffle有两处不同:...

  • 算法简单介绍【Python实现】

    ,1、排序算法 排序算法的稳定性,简单来说讲的是相同元素的位置排序完成后次序是否被打乱,若不打乱那么就是稳定的 常...

  • numpy如何将数组中行列任意抽取

    行列抽取和Matlab相同。语法略有不同! 矩阵的两列进行交换: import numpy as npa=np.e...

  • 面对疫情

    2020年的春节,我们迎来了一个"不速之客",它让这个春节不同以往。 新冠病毒的到来,让我们打乱了次序,打乱了生活...

  • 【dataquest学习】numpy计算

    直接用“==”判断numpy各项是否与base值相同,不需要for循环 得到结果:

  • 道不同,结果可能相同

    管理是一件很有艺术的事情,虽然我不懂。这门艺术,很大程度上存在在一个人的脑海里,与他的工作经验、成长经历、读的书密...

  • 环境相同父母不同结果不同

    2018.11.27恰逢爱 自然 生命力体系山西省家庭教育指导中心在体育路远航青少年活动中心落地的大好日子。 一...

  • 用高考标尺看教学方法

    不同老师有不同的教学方法和个人魅力。 不同的方法,会有相同的结果。 过程重要吗?结果更重要? 过程和结果会冲突吗?...

  • 相同的结果,不同的感受

    ​晚饭席间,与媳妇聊起工作中的事情,她说今天专门抽出时间,与团队成员复盘了最近的工作情况。在复盘中发现,员工在某些...

  • 相同的路,不同的结果

    从自己的观察来看,同样的登山路,有的半途而废,有的直奔顶峰,有的慢慢悠悠看风景。 我最感觉奇怪的点,是为何有人走不...

网友评论

      本文标题:numpy 打乱次序结果不同和相同

      本文链接:https://www.haomeiwen.com/subject/eqnypltx.html