numpy随机数和随机操作

随机数和随机操作

多种随机数生成
rand
np.random.rand(dim1,dim2,dim3...)
  • 生成带shape[0,1)之间取值的Array
random
np.random.random([dim1,dim2])
  • 与rand类似
randint
np.random.randint(low,high,size)
  • 随机生成再[low,high)之间的size个数
对已有数据进行随机处理
choice
np.random.choice(arr,size)
  • 在一组数据中随机选择一些数据
  • 其他:
    • np.random.choice(arr) #选一个
    • np.random.choice(arr,size) #选多个
    • np.random.choice(arr,size,replace=False). #不重复的选择
    • np.random.choice(arr,size,p=[0,0.2,0.3]). #带权重的选择
shuffle
np.random.shuffle(arr)
  • 对原有数据进行随机打乱
  • 如果需要保留原始数据,需要使用copy()
permutation
np.random.permutation()
  • 返回一个新数据
  • 直接生成乱序的序列号
随机分布
normal
np.random.normal(means,std,size)
  • 生成一个正太分布的随机数据
uniform
np.random.uniform(low,high,size)
  • 生成一个均匀分布
伪随机

有时,为了比较初始化模型的优劣,或者在强化学习中要固定随机环境的伪随机序列,用于复现当前配置的情况,需要使用伪随机

seed
np.random.seed(1)
  • 1是随机序号
  • 相同的随机序号每次运行的结果是一样的
'''
Description: 随机数和随机生成
Autor: 365JHWZGo
Date: 2021-11-17 21:58:26
LastEditors: 365JHWZGo
LastEditTime: 2021-11-17 22:50:36
'''

import numpy as np

data = np.arange(20,dtype=int)
print('原始data:\n',data)

print('random.randn:\n',np.random.randn(3,4))
print('random.random:\n',np.random.random([3,4]))
print('random.randint:\n',np.random.randint(1,10,10))

print('random.choice:\n',np.random.choice(data,2,replace=False))
print('random.shuffle:\n',np.random.shuffle(data))
print('shuffle之后的data:\n',data)
data = np.arange(20,dtype=int)
print('random.permutation:\n',np.random.permutation(data))
print('permutation之后的data:\n',data)
print('random.normal:\n',np.random.normal(0,1,5))
print('random.uniform:\n',np.random.uniform(-1,1,5))

运行结果:

原始data:
 [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19]
random.randn:
 [[ 1.09915619  0.81003414 -0.25341824  0.06337777]
 [ 0.51571388 -0.63545361  2.03279423 -0.20790151]
 [ 0.66207485 -0.56811394 -0.87433004 -1.39413948]]
random.random:
 [[0.43306495 0.46688371 0.38891675 0.17372101]
 [0.73356162 0.8906067  0.83650494 0.46585826]
 [0.08245838 0.06174975 0.0184939  0.47244699]]
random.randint:
 [2 3 2 4 6 2 1 1 4 4]
random.choice:
 [6 5]
random.shuffle:
 None
shuffle之后的data:
 [19  8  3 15  9 14 12  7  5 13  4  2 16  1  0  6 18 11 17 10]
random.permutation:
 [ 1 19  3 17 10 14  0  4 12 18  2 13  8 16  7 11  5  9  6 15]
permutation之后的data:
 [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19]
random.normal:
 [ 0.24561853  1.34731891 -1.11859979  0.07651908 -2.2713683 ]
random.uniform:
 [-0.30733277 -0.3373615  -0.37874023  0.78895057  0.22378715]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

365JHWZGo

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

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

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

打赏作者

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

抵扣说明:

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

余额充值