random.shuffle和numpy.random.shuffle的使用

  • 1.对于一维数据
  • 2.对于多维数据
    • 2.1 random.shuffle操作np.array格式数组
    • 2.2 random.shuffle及np.random.shuffle操作python list格式数组
    • 2.3 numpy.random.shuffle操作np.array格式数组
  • 3.结论

1.对于一维数据

import random
import numpy as np
a=[i for i in range(5)]
a=np.array(a)
print("a: \n",a)random.shuffle(a)
print('random.shuffle:\n',a) np.random.shuffle(a)
print('np.random.shuffle:\n',a)

输出结果为:

# a:
#  [0 1 2 3 4]
# random.shuffle:
#  [1 3 2 0 4]
# np.random.shuffle:
#  [2 3 0 4 1]

因此针对一维数据,可认为是随机排序。

2.对于多维数据

以二维为例:

2.1 random.shuffle操作np.array格式数组

import random
import numpy as np
a = []
for i in range(5):a.append([i]*5)
a=np.array(a)
print("a: \n",a)for _ in range(2):random.shuffle(a)
print('random.shuffle:\n',a) for _ in range(20):random.shuffle(a)
print('random.shuffle:\n',a)

输出为:

a: [[0 0 0 0 0][1 1 1 1 1][2 2 2 2 2][3 3 3 3 3][4 4 4 4 4]]
random.shuffle:[[0 0 0 0 0][1 1 1 1 1][1 1 1 1 1][2 2 2 2 2][4 4 4 4 4]]
random.shuffle:[[0 0 0 0 0][0 0 0 0 0][0 0 0 0 0][0 0 0 0 0][0 0 0 0 0]]

若数组的数据类型为np.array,则random.shuffle()执行的是非放回采样。显然循环n次后,数组中各行元素一致。

2.2 random.shuffle及np.random.shuffle操作python list格式数组

import random
import numpy as np
a = []
for i in range(5):a.append([i]*5)
print("a: \n",a)for _ in range(20):random.shuffle(a)
print('random.shuffle:\n',a) for _ in range(20):np.random.shuffle(a)
print('np.random.shuffle:\n',a)

输出为:

a: [[0, 0, 0, 0, 0], [1, 1, 1, 1, 1], [2, 2, 2, 2, 2], [3, 3, 3, 3, 3], [4, 4, 4, 4, 4]]
random.shuffle:[[1, 1, 1, 1, 1], [0, 0, 0, 0, 0], [3, 3, 3, 3, 3], [2, 2, 2, 2, 2], [4, 4, 4, 4, 4]]
np.random.shuffle:[[3, 3, 3, 3, 3], [2, 2, 2, 2, 2], [4, 4, 4, 4, 4], [0, 0, 0, 0, 0], [1, 1, 1, 1, 1]]

此输出是我们希望的结果。

2.3 numpy.random.shuffle操作np.array格式数组

import random
import numpy as npa = []
for i in range(5):a.append([i]*5)
a=np.array(a)
print("a: \n",a)for _ in range(20):np.random.shuffle(a)
print('np.random.shuffle:\n',a)

输出为:

a: [[0 0 0 0 0][1 1 1 1 1][2 2 2 2 2][3 3 3 3 3][4 4 4 4 4]]
np.random.shuffle:[[2 2 2 2 2][1 1 1 1 1][3 3 3 3 3][0 0 0 0 0][4 4 4 4 4]]

此输出也是我们希望的结果。

3.结论

综上可归纳如下:

数组shuffle random.shuffle numpy.random.shuffle
一维 OK OK
多维np.array() 不放回采样 OK
多维python list数组 OK OK

这也算是一个小坑吧。

random.shuffle和numpy.random.shuffle用法一样吗?相关推荐

  1. Python语言学习:三种随机函数random.seed()、numpy.random.seed()、set_random_seed()及random_normal的简介、使用方法(固定种子)详细攻略

    Python语言学习:三种随机函数random.seed().numpy.random.seed().set_random_seed()及random_normal的简介.使用方法(固定种子)之详细攻 ...

  2. [转载] python numpy.random.randn()与numpy.random.rand()的区别 (正态分布公式)(标准正态分布 standard normal distribution

    参考链接: Python中的numpy.random.randn 引用文章: numpy.random.randn()与numpy.random.rand()的区别 https://www.cnblo ...

  3. numpy.random.rand(),numpy.random.randn(),numpy.random.normal()函数介绍和示例

    numpy.random.rand(),numpy.random.randn(),numpy.random.normal()函数介绍和示例 1. numpy.random.rand() 均匀分布 范围 ...

  4. python random randint_python中numpy.random.randint用法

    numpy.random.randint(low, high=None, size=None, dtype='l') 函数的作用是,返回一个随机整型数,范围从低(包括)到高(不包括),即[low, h ...

  5. numpy.random.randn()与numpy.random.rand()的区别(转)

    numpy中有一些常用的用来产生随机数的函数,randn()和rand()就属于这其中.  numpy.random.randn(d0, d1, -, dn)是从标准正态分布中返回一个或多个样本值.  ...

  6. numpy.random.rand、numpy.random.randn

    numpy.random.rand(d0,d1,-,dn) 返回一个或一组服从"0~1"均匀分布的随机样本值.随机样本取值范围是[0,1),不包括1 print(np.random ...

  7. random.randint()与numpy.random.randint()的区别

    random.randint() import random for n in range(5):for i in range(10):print(random.randint(1,5),end=' ...

  8. numpy.random.randn()用法

    在python数据分析的学习和应用过程中,经常需要用到numpy的随机函数,由于随机函数random的功能比较多,经常会混淆或记不住,下面我们一起来汇总学习下. import numpy as np ...

  9. numpy.random.randn()与rand()的区别

    1.numpy中有一些常用的用来产生随机数的函数,randn()和rand()就属于这其中.  numpy.random.randn(d0, d1, -, dn)是从标准正态分布中返回一个或多个样本值 ...

最新文章

  1. Distimo发布新SDK 帮助开发者跟踪应用下载转换率
  2. ACM《数据结构》顺序表
  3. Ex 2_5 求解递推式..._第三次作业
  4. [转] Freemarker的常用技巧总结
  5. .NET Conf 2017后初尝Xamarin Forms 3.0@Linux
  6. python函数封装计算n运算_在Python里面怎么可以运算出999999999**999999999,求思路?...
  7. 解决 Tomcat 添加 Cookie 域名报错问题 : CookieProcessor
  8. C#的多线程机制探索5
  9. mac securecrt程序无响应_Adobe庆祝Photoshop问世30周年 为Mac和iPad版本提供新功能
  10. 基于java洗浴中心管理系统_Java小白也能听懂的线程池的内部原理:老王的洗浴中心...
  11. 95-864-040-源码-HDFS-Flink 和 HDFS 的交互
  12. Ubuntu 20.10 代号 Groovy Gorilla,第二个以猿类命名版本,将于 10 月 22 日发布
  13. cl_salv_table
  14. oracle 11g安装自己理解
  15. 全国土壤湿度数据集/土壤水分数据
  16. [No000014B]Office-PPT设置默认打开视图
  17. ffmpeg之图片串流h264视频
  18. 计算机用老毛桃u盘备份系统,老毛桃u盘启动盘ghost备份系统操作步骤
  19. 以太坊基础---奖励
  20. 前有刘德华,后有腾格尔和光头李进,明星为何都热衷于线上演唱会

热门文章

  1. Head First C# 中文野生版 图文皆译 (page28)
  2. 雅思 托福 GRE 的区别
  3. 你真的知道Optional怎么使用吗?
  4. Position属性四个取值用法和区别
  5. vagrant 的使用
  6. linux解压批量tar文件内容,Linux命令:tar命令批量解压方法总结
  7. Unity3D性能优化总结(转纳金网)
  8. 四大智能手机操作系统简介
  9. python的__main__
  10. Java static关键字