使用Numpy中的random模块中常用函数的使用方法

23 篇文章 0 订阅
9 篇文章 1 订阅

实验目的
熟练掌握Numpy的random模块中常用函数的使用方法

实验原理
random中常用函数及其说明:

numpy.random.rand(d0, d1, …, dn):创建一个给定形状的,值从0-1均匀分布中随机抽取的浮点数组,其中d0, d1, …, dn为数组的维数,若参数为空时,返回一个0到1之间的浮点数。

numpy.random.randn(d0, d1, …, dn):创建一个给定形状的,值从标准正态分布(μ=0,σ=1)中随机抽取的浮点数组,其中d0, d1, …, dn为数组的维数,若参数为空时,返回一个该正态分布上的随机浮点数。

numpy.random.standard_normal(size=None):生产一个浮点数或N维浮点数组,取数范围:标准正态分布随机样本

numpy.random.randint(low, high=None, size=None, dtype=‘l’):生成一个整数或N维整数数组,取数范围:若high不为None时,取[low,high)之间随机整数,否则取值[0,low)之间随机整数。

numpy.random.random_integers(low, high=None, size=None):生成一个整数或一个N维整数数组,取值范围:若high不为None,则取[low,high]之间随机整数,否则取[1,low]之间随机整数。

numpy.random.random_sample(size=None):生成一个[0,1)之间随机浮点数或N维浮点数组。

numpy.random.choice(a, size=None, replace=True, p=None):从序列中获取元素,若a为整数,元素取值为np.range(a)中随机数;若a为数组,取值为a数组元素中随机元素。

numpy.random.shuffle(x):对X进行重排序,如果X为多维数组,只沿第一条轴洗牌,输出为None。

numpy.random.permutation(x):与numpy.random.shuffle(x)函数功能相同,两者区别:permutation(x)不会修改X的顺序。

numpy.random.normal(loc=0.0, scale=1.0, size=None):生成一个标量或多维数组,取值范围:从高斯分布中随机抽取数值。loc:为方差,scale:为标准差,size:数组的形状。

numpy.random.uniform(low=0.0, high=1.0, size=None):生成一个标量或多维数组,取值范围:从p(x)=1/(high-low)的均匀分布中随机抽取数值。
low:浮点数或浮点型数组,为输出间隔的下界,high:浮点数或浮点型数组,为输出间隔的上界,size:整型或元组,数组的形状。

numpy.random.binomial(n, p, size=None):二项分布采样,size:采样的次数,n为成功的次数,p:成功的概率

numpy.random.seed()

  • np.random.seed()的作用:使得随机数据可预测。
  • 当我们设置相同的seed,每次生成的随机数相同。如果不设置seed,则每次会生成不同的随机数

实验内容
练习 numpy.random中常用函数的使用.

实验环境

Python 3.6
Jupyter

实验代码

1.使用numpy.random.rand()函数,创建一个1-0之间的随机浮点数

import numpy as np
np.random.rand()
0.9973438588424713

2.使用numpy.random.rand()函数,创建一个大小为5的一维随机浮点数组

np.random.rand(5)
array([0.97524436, 0.4958107 , 0.82614772, 0.56731404, 0.45002964])

3.使用numpy.random.rand()函数,创建一个3行4列的二维随机浮点数组

np.random.rand(3,4)
array([[0.69396222, 0.91919737, 0.68783588, 0.08711667],
       [0.35295943, 0.64582403, 0.01180912, 0.25224169],
       [0.96500808, 0.13655116, 0.62489743, 0.91029325]])

4.使用numpy.random.randn函数,创建一个正态分布中的随机浮点数(不一定是(0-1)之间的随机数)

np.random.randn()
-0.5147385179517995

5.使用numpy.random.randn() 函数,生成形状为5的值从标准正态分布(μ=0,σ=1)中随机抽取的一维浮点数组。

np.random.randn(5)
array([ 0.03126489, -0.96728699,  1.64621661, -0.64129089,  0.55649746])

6.使用numpy.random.randn()函数,创建一个2行3列的值从标准正态分布(μ=0,σ=1)中随机抽取的二维浮点数组

np.random.randn(2,3)
array([[-1.21234908, -0.17320489,  0.32503713],
       [-0.40420385, -1.87416492,  2.75135187]])

7.使用numpy.random.standard_normal()函数,创建一个正态分布中的随机浮点数

np.random.standard_normal(size=None)
0.04295874186662941

8.使用np.randoml.standard_normal()函数,生成形状为3的值从标准正态分布(μ=0,σ=1)中随机抽取的一维浮点数组

np.random.standard_normal(size=3)
array([-0.47257812,  0.47061943, -2.30218443])

9.使用np.random.standard_normal()函数,创建一个3行3列的值从标准正态分布(μ=0,σ=1)中随机抽取的二维浮点数组

np.random.standard_normal((2,3))
array([[ 0.6761525 ,  0.39931226, -0.77434411],
       [-1.16939317,  0.22153849, -0.14662393]])

10.使用np.random.randint()函数,生成一个0-2之间的随机整数,设置数字类型参数dtype=int32

np.random.randint(2,dtype=np.int32)
1

11.使用np.random.randint()函数,生成形状为5的值从0-2随机抽取整数构成的一维数组

np.random.randint(2,size=5)
array([1, 1, 0, 1, 0])

12使用np.random.randint()函数,生成形状为5的值从2-6随机抽取整数构成的一维数组

np.random.randint(2,6,size=5)
array([3, 3, 2, 5, 5])

13.使用np.random.randint()函数,生成形状为2行3列,值为2-6中随机整数的二维数组

np.random.randint(2,6,size=(2,3))
array([[3, 3, 2],
       [5, 5, 3]])

14.使用np.random.random_integers()函数,生成一个1-2之间的随机整数

np.random.random_integers(2)
<ipython-input-25-f05d5acc4756>:1: DeprecationWarning: This function is deprecated. Please call randint(1, 2 + 1) instead
  np.random.random_integers(2)





2

15.使用np.random.random_integers()函数生成一个2-6之间的随机整数

np.random.random_integers(2,6)
<ipython-input-26-a0786e1a1811>:1: DeprecationWarning: This function is deprecated. Please call randint(2, 6 + 1) instead
  np.random.random_integers(2,6)





2

16.使用np.random.random_integers()函数,生成长度为5的,值为1-2之间的随机整数构成的一维数组

np.random.random_integers(1,2,size=5)
<ipython-input-27-29059a9d3244>:1: DeprecationWarning: This function is deprecated. Please call randint(1, 2 + 1) instead
  np.random.random_integers(1,2,size=5)





array([2, 1, 2, 2, 1])

17.使用np.random.random_integers()函数生成长度为5,值为2-6之间的随机整数构成的一维数组

np.random.random_integers(2,6,size=5)
<ipython-input-28-400d32483018>:1: DeprecationWarning: This function is deprecated. Please call randint(2, 6 + 1) instead
  np.random.random_integers(2,6,size=5)





array([6, 2, 6, 6, 5])

18.使用np.random.random_integers()函数,生成形状为2行3列,值为1-2之间随机整数构成的二维数组

np.random.random_integers(1,2,size=(2,3))
<ipython-input-29-b2595db9c335>:1: DeprecationWarning: This function is deprecated. Please call randint(1, 2 + 1) instead
  np.random.random_integers(1,2,size=(2,3))





array([[2, 1, 2],
       [2, 1, 1]])

19.使用np.random.random_integers()函数生成形状2行3列,值为2-7之间随机整数构成的二维数组

np.random.random_integers(2,7,size=(2,3))
<ipython-input-30-587392619563>:1: DeprecationWarning: This function is deprecated. Please call randint(2, 7 + 1) instead
  np.random.random_integers(2,7,size=(2,3))





array([[3, 7, 3],
       [3, 4, 7]])

20.使用np.random.random_sample(size=None)函数,生成一个0-1之间随机浮点数

np.random.random_sample()
0.8835925540780203

21.使用np.random.random_sample()函数,生成长度为2,取值0-1之间的随机浮点数构成的一维数组

np.random.random_sample(2)
array([0.5810885 , 0.58488464])
np.random.random_sample(2,)
array([0.58186985, 0.20988911])

22.使用np.random.random_sample()函数,生成值由0-1之间的浮点数构成的2行3列的二维数组

np.random.random_sample((2,3))
array([[0.47763331, 0.97360871, 0.57307313],
       [0.6426809 , 0.06443445, 0.73485938]])

23.使用np.random.random_sample()函数,生成0-1之间的随机浮点数构成的322的三维数组

np.random.random_sample((3,2,2))
array([[[0.4088975 , 0.22270118],
        [0.82097827, 0.88908927]],

       [[0.96302056, 0.89805219],
        [0.55863401, 0.70950632]],

       [[0.66071754, 0.98621104],
        [0.22320362, 0.10105085]]])

24.使用numpy.random.choice()函数,生成一个range(2)中的随机数

np.random.choice(2)  
0

25.使用numpy.random.choice()函数,生成一个shape=2,值由range(2)中随机数构成的一维数组。

np.random.choice(2,2)  
array([1, 1])

26.使用numpy.random.choice()函数,生成值由range(5)中随机数构成的3行2列的二维数组。

np.random.choice(5,(3,2))  
array([[2, 4],
       [3, 2],
       [2, 1]])

27.使用numpy.random.choice()函数,生成一个np.array([‘a’,‘b’,‘c’,‘f’]中随机元素

np.random.choice(np.array(['a','b','c','f']))  

28.使用numpy.random.shuffle(x):对X进行重排序,如果X为多维数组,只沿第一条轴洗牌,输出为None

arr = np.arange(9).reshape(3,3)    
arr  
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])
np.random.shuffle(arr)  
arr  
array([[6, 7, 8],
       [3, 4, 5],
       [0, 1, 2]])

29.使用numpy.random.permutation():与numpy.random.shuffle()函数功能相同,两者区别:permutation(x)不会修改X的顺序。

arr = np.arange(9)    
np.random.permutation(arr)
array([6, 5, 2, 8, 7, 3, 0, 4, 1])

30…使用numpy.random.permutation()函数,对数组进行重新排序,对于多维数组,只会沿着第一条轴打乱顺序 ,即按行打乱行序。

arr2 = np.arange(9).reshape(3,3)    
np.random.permutation(arr2)  
array([[3, 4, 5],
       [0, 1, 2],
       [6, 7, 8]])

31.使用 numpy.random.normal()函数,从均值为0,标准差为1的高斯分布中随机抽取10个数,构建一个一维数组

np.random.normal(loc=0,scale=1,size=10)  
array([-0.22914193, -0.30778216,  0.56903861,  2.2541222 , -0.19589127,
        0.71526051,  0.43967649, -0.92584041, -0.10364788, -0.32458269])

32.使用np.random.uniform()函数,从下界为-1,上界为0的均匀分布中随机抽取6个数,构建一个3行2列的二维数组。

np.random.uniform(-1,0,(3,2)) 
array([[-0.04324442, -0.1794637 ],
       [-0.9687359 , -0.49210078],
       [-0.06421859, -0.32412507]])

33.使用np.random.binomial()函数,从成功次数n=10,成功概率p=0.5的二项分布中随机抽取10个数,构建一个一维数组。

np.random.binomial(n=10, p=0.5, size=10)
array([6, 7, 6, 5, 3, 8, 4, 5, 7, 4])
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

余生羁绊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值