random.shuffle和numpy.random.shuffle用法一样吗?
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用法一样吗?相关推荐
- Python语言学习:三种随机函数random.seed()、numpy.random.seed()、set_random_seed()及random_normal的简介、使用方法(固定种子)详细攻略
Python语言学习:三种随机函数random.seed().numpy.random.seed().set_random_seed()及random_normal的简介.使用方法(固定种子)之详细攻 ...
- [转载] python numpy.random.randn()与numpy.random.rand()的区别 (正态分布公式)(标准正态分布 standard normal distribution
参考链接: Python中的numpy.random.randn 引用文章: numpy.random.randn()与numpy.random.rand()的区别 https://www.cnblo ...
- numpy.random.rand(),numpy.random.randn(),numpy.random.normal()函数介绍和示例
numpy.random.rand(),numpy.random.randn(),numpy.random.normal()函数介绍和示例 1. numpy.random.rand() 均匀分布 范围 ...
- python random randint_python中numpy.random.randint用法
numpy.random.randint(low, high=None, size=None, dtype='l') 函数的作用是,返回一个随机整型数,范围从低(包括)到高(不包括),即[low, h ...
- numpy.random.randn()与numpy.random.rand()的区别(转)
numpy中有一些常用的用来产生随机数的函数,randn()和rand()就属于这其中. numpy.random.randn(d0, d1, -, dn)是从标准正态分布中返回一个或多个样本值. ...
- numpy.random.rand、numpy.random.randn
numpy.random.rand(d0,d1,-,dn) 返回一个或一组服从"0~1"均匀分布的随机样本值.随机样本取值范围是[0,1),不包括1 print(np.random ...
- 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=' ...
- numpy.random.randn()用法
在python数据分析的学习和应用过程中,经常需要用到numpy的随机函数,由于随机函数random的功能比较多,经常会混淆或记不住,下面我们一起来汇总学习下. import numpy as np ...
- numpy.random.randn()与rand()的区别
1.numpy中有一些常用的用来产生随机数的函数,randn()和rand()就属于这其中. numpy.random.randn(d0, d1, -, dn)是从标准正态分布中返回一个或多个样本值 ...
最新文章
- Distimo发布新SDK 帮助开发者跟踪应用下载转换率
- ACM《数据结构》顺序表
- Ex 2_5 求解递推式..._第三次作业
- [转] Freemarker的常用技巧总结
- .NET Conf 2017后初尝Xamarin Forms 3.0@Linux
- python函数封装计算n运算_在Python里面怎么可以运算出999999999**999999999,求思路?...
- 解决 Tomcat 添加 Cookie 域名报错问题 : CookieProcessor
- C#的多线程机制探索5
- mac securecrt程序无响应_Adobe庆祝Photoshop问世30周年 为Mac和iPad版本提供新功能
- 基于java洗浴中心管理系统_Java小白也能听懂的线程池的内部原理:老王的洗浴中心...
- 95-864-040-源码-HDFS-Flink 和 HDFS 的交互
- Ubuntu 20.10 代号 Groovy Gorilla,第二个以猿类命名版本,将于 10 月 22 日发布
- cl_salv_table
- oracle 11g安装自己理解
- 全国土壤湿度数据集/土壤水分数据
- [No000014B]Office-PPT设置默认打开视图
- ffmpeg之图片串流h264视频
- 计算机用老毛桃u盘备份系统,老毛桃u盘启动盘ghost备份系统操作步骤
- 以太坊基础---奖励
- 前有刘德华,后有腾格尔和光头李进,明星为何都热衷于线上演唱会