8、numpy之random中常用的随机函数

np.random.permutation(数组)

  • 按照数组的第一个轴返回数组的随机排列作为一个新数组
import numpy as np
b=np.arange(12).reshape(2,2,3)
a=np.random.permutation(b)
print(a)

runfile('C:/Users/xyy/.spyder-py3/temp.py', wdir='C:/Users/xyy/.spyder-py3')
[[[ 6  7  8]
  [ 9 10 11]]

 [[ 0  1  2]
  [ 3  4  5]]]

np.random.shuffle(数组)

  • 按照数组的第一个轴对数组进行随机排列
import numpy as np
b=np.arange(12).reshape(2,2,3)
np.random.shuffle(b)
print(b)

runfile('C:/Users/xyy/.spyder-py3/temp.py', wdir='C:/Users/xyy/.spyder-py3')
[[[ 6  7  8]
  [ 9 10 11]]

 [[ 0  1  2]
  [ 3  4  5]]]

np.random.rand()

  • 产生均匀分布的样本值
  • 数据在0-1之间:0<=数据<1

np.random.randn()

  • 产生正态分布的样本值(均值为0,标准差为1)

np.random.normal(均值,标准差,shape)

  • 产生高斯正态分布的样本值
  • 给定均值与标准差,按shape返回数组

np.random.randint(low,high,size,dtype=int)

  • 产生整数数组
  • 数据在low与high之间:low<=数据<high
  • size是数组大小,可以直接设置shape
import numpy as np
a=np.random.rand(6).reshape(2,3)
b=np.random.randn(6)
print('a:\n',a)
print('b:\n',b)
print('均值为2,标准差为1.52,shape为(3,5)的数组:\n',np.random.normal(2,1.52,(3,5)))

runfile('C:/Users/xyy/.spyder-py3/temp.py', wdir='C:/Users/xyy/.spyder-py3')
a:
 [[0.61612483 0.56318751 0.36816219]
 [0.6909312  0.81616768 0.92564349]]
b:
 [-1.07047691  0.59564405  0.66580806  1.73630363 -0.68616005  0.12560851]
均值为2,标准差为1.52,shape为(3,5)的数组:
 [[ 3.79355132  0.4279682   1.95519999  1.108661   -1.04303947]
 [ 1.46955627  3.70318833  3.37216073  1.39718475  3.22984242]
 [ 1.95765676  1.90620876  1.97837099  4.30100364  1.16260341]]

np.random.binomial(n,p,size)

  • 产生二项分布的样本值
    二项式分布指的是每个样本的实验都只有两种互斥的可能,且样本之间完全独立,每个样本的成功概率都相等。
    每次实验的样本数为n,每个样本成功概率是p,总共做“size的轴乘积”次实验;最后返回每次实验中样本成功的数量组成的序列(0<=成功数量<=n)
  • n:单次实验的样本数,正整数
  • p:每个样本成功的概率,0-1之间的小数
  • size:返回的shape,正整数或整数型数组
    shape的轴的乘积就是样本次数
import numpy as np
print('每次抛一枚硬币,正面朝上的概率为0.5,抛5次,每次正面朝上的次数组成的序列为:')
print(np.random.binomial(1,0.5,5))
print('每次抛3枚硬币,每枚正面朝上的概率为0.5,抛30次,每次正面朝上的次数组成的序列为:')
print(np.random.binomial(3,0.5,(5,3,2)))

runfile('C:/Users/xyy/.spyder-py3/temp.py', wdir='C:/Users/xyy/.spyder-py3')
每次抛一枚硬币,正面朝上的概率为0.5,抛5次,每次正面朝上的次数组成的序列为:
[1 1 1 0 0]
每次抛3枚硬币,每枚正面朝上的概率为0.5,抛30次,每次正面朝上的次数组成的序列为:
[[[2 2]
  [1 0]
  [0 2]]

 [[3 1]
  [1 1]
  [1 1]]

 [[0 2]
  [3 2]
  [1 1]]

 [[2 1]
  [0 1]
  [2 1]]

 [[2 3]
  [1 1]
  [2 1]]]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值