numpy中利用random类获取随机数.

numpy.random.random() 生成随机浮点数
默认为生成一个随机的浮点数,范围是在0.0~1.0之间,也可以通过参数size设置返回数据的size; 生成一个随机的浮点数: import numpy
n = numpy.random.random()
print n
1
2
3
输出: 0.429489486421
1
设置参数size: import numpy
n = numpy.random.random(size=(3, 2))
print n
1
2
3
输出: [[ 0.32018625 0.22410508]
[ 0.57830333 0.74477335]
[ 0.08333105 0.48533304]]
1
2
3
numpy.random.randint() 产生随机整数
API: randint(low, high=None, size=None, dtype=’l’)
numpy.random.randint()随机生一个整数int类型,可以指定这个整数的范围 import numpy as np
print np.random.randint(8)
print np.random.randint(5, size=3)
print np.random.randint(6, size=(3,2))
1
2
3
4
输出: 4
[1 1 3]
[[2 4]
[5 4]
[3 0]]
1
2
3
4
5
指定范围: import numpy as np
print np.random.randint(low=5, high=10, size=3)
1
2
输出: [7 5 5]
1
numpy.random.normal()  高斯分布随机数
API: normal(loc=0.0, scale=1.0, size=None)
loc:均值,scale:标准差,size:抽取样本的size import numpy
n = numpy.random.normal(loc=0.0, scale=1, size=(2, 3))
print n
1
2
3
输出: [[-0.15040995 -0.43780718 -0.22292445]
[-0.89388124 -0.39465164 0.24113838]]
1
2
numpy.random.randn() 标准正态分布随机数
numpy.random.randn(d0, d1, …, dn)函数:
从标准正态分布中返回一个(d0*d1* …* dn)维样本值 例1: import numpy as np
print np.random.randn(4, 2)
1
2
输出: [[-1.88753851 -2.54412195]
[ 0.51856343 -1.07733711]
[ 1.05820592 -0.23889217]
[ 0.73309062 0.42152066]]
1
2
3
4
例2: import numpy as np
print np.random.randn(4, 2, 3)
1
2
输出: [[[-1.00477835 1.16919912 -1.28299362]
[ 0.0645336 0.19143397 -0.16957401]] [[-1.45250491 -0.51844037 -0.01241654]
[ 0.41427599 0.19469926 -0.92450654]] [[-1.90133606 1.23554382 -1.37775698]
[-0.98110245 0.3562373 -0.27816068]] [[ 1.0380202 0.24293181 0.5341542 ]
[-0.62945999 1.62233629 -0.07299065]]]
1
2
3
4
5
6
7
8
9
10
11
numpy.random.rand() 生成[0, 1)间随机数
numpy.random.rand(d0, d1, …, dn)函数:
生成一个(d0*d1* …* dn)维位于[0, 1)中随机样本 例: import numpy as np
print np.random.rand(2,3)
1
2
输出: [[ 0.06112299 0.02476706 0.04235452]
[ 0.47891264 0.68831817 0.31309659]]
1
2
numpy.random.shuffle() 随机打乱序列
numpy.random.shuffle() 将序列的所有元素随机排序
<传入参数可以是一个序列或者元组> import numpy as np
x = range(0, 8, 1)
print x
np.random.shuffle(x)
print x
1
2
3
4
5
输出: [0, 1, 2, 3, 4, 5, 6, 7] [2, 3, 5, 4, 1, 7, 0, 6]
1
2
3
numpy.random.choice() 随机选取序列的一个元素
numpy.random.choice()可以从序列(字符串、列表、元组等)中随机选取,返回一个列表,元组或字符串的随机项。 import numpy as np
print np.random.choice(['a','b','c','d','e'])
1
2
输出: c
1
print np.random.choice(5, 6)
1
输出(6个小于5的元素): [2 3 3 3 1 2]
1
p:每个条目出现的概率。如果没有,假设样本在A中的所有条目都具有均匀分布。 import numpy as np
print np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
1
2
(p=[0.1, 0, 0.3, 0.6, 0]即出现0 1 2 3 4的概率分别是[0.1, 0, 0.3, 0.6, 0]) 输出: [0 3 2]
1
import numpy as np
ss = ['pooh', 'rabbit', 'piglet', 'Christopher']
print np.random.choice(ss, 5, p=[0.5, 0.1, 0.1, 0.3])
1
2
3
输出: ['Christopher' 'piglet' 'pooh' 'piglet' 'Christopher']
1
numpy.random.binomial() 二项分布采样
numpy.random.RandomState.binomial(n, p, size=None)表示对一个二项分布进行采样,s为成功次数
P(N)=CsnPs(1−P)n−s
size:采样的次数,n p即式中的n p;函数的返回值表示n中发生/成功的次数s.
如:当n=5,p=0.2,size=1000,即5个事件每个发生的概率为0.2,则5个同时发生的概率,采样size=1000次: P(p=0.2)=C55p5(1−p)0=0.32
import numpy as np
print sum(np.random.binomial(5, 0.2, size=10000)==0)/10000.
1
2
可得: 0.3246
1
很接近手动计算结果. numpy.random.RandomState() 指定种子值
numpy.random.RandomState()指定种子值(指定种子值是为了使同样的条件下每次产生的随机数一样,避免程序调试时由随机数不同而引起的问题)
如不设置种子值时,np.random.randint(8)可能产生0-7内的任意整数,且每次产生的数字可能是任意一种.
而设置种子值后,np.random.RandomState(0).randint(8)可能产生0-7内的任意整数,但种子值不变时每次运行程序产生的数字一样. 产生随机整数: import numpy as np
print np.random.RandomState(0).randint(8)
1
2
输出: 4
1
生成随机浮点数: import numpy
n1 = numpy.random.RandomState(0).random_sample()
n2 = numpy.random.RandomState(0).random_sample(size=(2,3))
print n1,n2
1
2
3
4
输出: 0.548813503927
[[ 0.5488135 0.71518937 0.60276338]
[ 0.54488318 0.4236548 0.64589411]]

转---Python——numpy random类的更多相关文章

  1. [Python] numpy.random.rand

    numpy.random.rand numpy.random.rand(d0, d1, ..., dn) Random values in a given shape. Create an array ...

  2. numpy.random之常用函数

    在实际开发中,我们经常会使用随机函数,比如交叉验证,构造测试数据等.下面,是我常用的几个生成随机样本的函数: 1,rand(n1,n2,…,nn) 每一维度都是[0.0,1.0)半闭半开区间上的随机分 ...

  3. NumPy的随机函数子库——numpy.random

    NumPy的随机函数子库numpy.random 导入模块:import numpy as np 1.numpy.random.rand(d0,d1,...,dn) 生成一个shape为(d0,d1, ...

  4. python基础--numpy.random

    # *_*coding:utf-8 *_* # athor:auto import numpy.random #rand(d0, d1, ..., dn)n维随机值 data0 = numpy.ran ...

  5. Python学习——numpy.random

    numpy.random.rand numpy.random模块作用是生成随机数,其中numpy.random.rand(d0, d1, ..., dn):生成一个[0,1)之间的随机浮点数或N维浮点 ...

  6. Python/Numpy大数据编程经验

    Python/Numpy大数据编程经验 1.边处理边保存数据,不要处理完了一次性保存.不然程序跑了几小时甚至几天后挂了,就啥也没有了.即使部分结果不能实用,也可以分析程序流程的问题或者数据的特点.   ...

  7. Python NumPy学习总结

    一.NumPy简介 其官网是:http://www.numpy.org/ NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Num ...

  8. python numpy 学习

    例子 >>> import numpy as np >>> a = np.arange(15).reshape(3, 5) >>> a array ...

  9. CS231n课程笔记翻译1:Python Numpy教程

    译者注:本文智能单元首发,翻译自斯坦福CS231n课程笔记Python Numpy Tutorial,由课程教师Andrej Karpathy授权进行翻译.本篇教程由杜客翻译完成,Flood Sung ...

随机推荐

  1. Ionic3实现选项卡切换可以重新加载echarts

    要求 选项卡每切换一次,就加载对应的一个echarts 图,要有一开始的动画效果效果如下: 注意点 1.echarts要想每次都能重新加载,需要移除"_echarts_instance_&q ...

  2. LOJ #2048. 「HNOI2016」最小公倍数

    题意 有 \(n\) 个点,\(m\) 条边,每条边连接 \(u \Leftrightarrow v\) 且权值为 \((a, b)\) . 共有 \(q\) 次询问,每次询问给出 \(u, v, q ...

  3. spring cloud + mybatis 分布式 微服务 b2b2c 多商户商城 全球部署方案

    用java实施的电子商务平台太少了,使用spring cloud技术构建的b2b2c电子商务平台更少,大型企业分布式互联网电子商务平台,推出PC+微信+APP+云服务的云商平台系统,其中包括B2B.B ...

  4. 【BZOJ3653】谈笑风生(长链剖分)

    [BZOJ3653]谈笑风生(长链剖分) 题面 BZOJ 洛谷 权限题啊.... 题解 首先根据题目给的条件,发现\(a,b\)都要是\(c\)的父亲. 所以这三个点是树上的一条深度单增的链. 因为\ ...

  5. 【CF802C】Heidi and Library(网络流)

    [CF802C]Heidi and Library(网络流) 题面 CF 洛谷 题解 前面两个Easy和Medium都是什么鬼玩意啊.... 不难发现如果这天的要求就是第\(a_i\)种书的话,那么\ ...

  6. H5左侧滑删除简单实现

    简单的左滑删除 实现功能 在一个列表的一条中,往左滑动时,右边出现删除按钮,点击可删除这一条 实现办法 列表中一项为父div,其中包含内容div和删除按钮span 父div相对定位,设置宽度.内容di ...

  7. Glad You Came hdu-6356(ST表 || 线段树)

    第一种用线段树,用两颗数维护区间最大值和区间的最小值,然后更新的时候如果我目前区间内的最大值比我得到的v小,那么我就把这个区间修改成v,如果我的最小值比v大,那么v就是没有用的,直接跳过,然后这样每次 ...

  8. 天梯赛 L2-001 紧急救援

    L2-001 紧急救援 (25 分) 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快速道 ...

  9. git的使用命令

    git archive --format zip --output "./test.zip" master -0 将项目的代码通过上述命令打包压缩为test文件夹 ssh-keyg ...

  10. 记一次 HTTP信息头管理器使用 的重要性

    今天在测试中遇到了一个问题 使用JMeter时请求相关地址参数及方法都填写正确,但是相应数据返回始终不对,例如 查看取样器结果显示 200 正常,但响应数据不符合正常的结果. 经反复检查发现问题如下: ...