Python数据分析与展示:numpy.random随机函数-3
【摘要】 numpy.random随机函数
rand(d0, d1,...dn) 随机数组, 浮点数,[0, 1)均匀分布
randn(d0, d1,...dn) 随机数组,正态分布
randint(low, high, shape) 指定随机范围
seed(s) 随机种子
shuffle(a) 随机排列第一轴, 改变数组a
permutation(a) 根据第一轴返回乱序数组...
numpy.random随机函数
rand(d0, d1,...dn) 随机数组, 浮点数,[0, 1)均匀分布
randn(d0, d1,...dn) 随机数组,正态分布
randint(low, high, shape) 指定随机范围
seed(s) 随机种子
shuffle(a) 随机排列第一轴, 改变数组a
permutation(a) 根据第一轴返回乱序数组,不改变数组
choice(a[, size, replace, p]) 从一维数组a中,以概率p抽取元素形成size形状的新数组, replace表示是否可以重用元素,默认false
uniform(low, high, size) 产生均匀分布的数组 low起始,high结束,size形状
normal(loc, scale, size) 正态分布数组 loc均值,scale标准差,size形状
poisson(lam, size) 泊松分布数组lam随机事件发生概率,size形状
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
代码示例
# -*- coding: utf-8 -*-
# @File : random_demo.py
# @Date : 2018-05-06
import numpy as np
# 均匀分布[0, 1)
a = np.random.rand(3, 4)
print(a)
"""
[[0.6080194 0.47885844 0.48511573 0.15609718]
[0.90561005 0.20551061 0.59124551 0.21673084]
[0.05076159 0.52149204 0.24823637 0.9541937 ]]
"""
# 正态分布
b = np.random.randn(3, 4)
print(b)
"""
[[-1.4866319 0.45051244 1.95193206 1.5092608 ]
[ 0.17095636 0.76524396 -0.23887707 -0.75316857]
[ 0.57783147 1.12816053 1.13248504 -1.62456833]]
"""
# 使用随机种子
np.random.seed(10)
# 指定随机范围
c = np.random.randint(100, 200, (3, 4))
print(c)
"""
[[109 115 164 128]
[189 193 129 108]
[173 100 140 136]]
"""
# 使用相同的随机种子
np.random.seed(10)
d = np.random.randint(100, 200, (3, 4))
print(d)
"""
[[109 115 164 128]
[189 193 129 108]
[173 100 140 136]]
"""
# 打乱第一维,改变数组
np.random.shuffle(d)
print(d)
"""
[[189 193 129 108]
[173 100 140 136]
[109 115 164 128]]
"""
# 改变第一维,返回新数组
e = np.random.permutation(d)
print(e)
"""
[[173 100 140 136]
[189 193 129 108]
[109 115 164 128]]
"""
# 随机从一维数组中选择元素
f = e.flatten() # 降维
print(f)
# [173 100 140 136 189 193 129 108 109 115 164 128]
g = np.random.choice(f, (2, 3))
print(g)
"""
[[128 164 100]
[109 189 100]]
"""
# 关闭元素重用
h = np.random.choice(f, (2, 3), replace=False)
print(h)
"""
[[108 173 109]
[140 189 115]]
"""
# 设置每个元素的抽取概率
p = f/np.sum(f)
print(p)
"""
[0.10273159 0.05938242 0.08313539 0.0807601 0.11223278 0.11460808
0.07660333 0.06413302 0.06472684 0.06828979 0.09738717 0.0760095 ]
"""
j = np.random.choice(f, (2, 3), replace=False, p=p)
print(j)
"""
[[115 100 136]
[173 140 108]]
"""
# 均匀分布,指定起止范围
k = np.random.uniform(low=1, high=10, size=(3, 4))
print(k)
"""
[[3.9869403 6.03683529 4.01949682 4.70064291]
[1.69169952 8.67738691 4.9598871 2.09758732]
[7.58561162 2.24904219 7.90192044 8.48790791]]
"""
# 正态分布,指定均值,标准差
l = np.random.normal(loc=10, scale=5, size=(3, 4))
print(l)
"""
[[14.20717363 1.79875008 15.29002579 9.54107779]
[ 6.37982703 7.99769821 12.22662292 14.79969824]
[ 3.2682308 20.09449687 15.41188173 1.07141088]]
"""
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。
原文链接:pengshiyu.blog.csdn.net/article/details/80216968
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)