转---Python——numpy random类

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]]

原文地址:https://www.cnblogs.com/Frank99/p/9552471.html

时间: 2024-10-13 19:19:40

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

[Python] numpy.random.rand

numpy.random.rand numpy.random.rand(d0, d1, ..., dn) Random values in a given shape. Create an array of the given shape and populate it with random samples from a uniform distribution over [0, 1). Parameters: d0, d1, ..., dn : int, optional The dimen

numpy.random之常用函数

在实际开发中,我们经常会使用随机函数,比如交叉验证,构造测试数据等.下面,是我常用的几个生成随机样本的函数: 1,rand(n1,n2,-,nn) 每一维度都是[0.0,1.0)半闭半开区间上的随机分布 2,randn(n1,n2,-,nn) 返回一个样本,具有标准正态分布 3,random([size]) sample([size]) Random_sample([size]) 返回随机的浮点数,在半开区间 [0.0, 1.0). 如果想了解更多的函数,可以看下下面这篇博客,写的比较全: py

Python/Numpy大数据编程经验

Python/Numpy大数据编程经验 1.边处理边保存数据,不要处理完了一次性保存.不然程序跑了几小时甚至几天后挂了,就啥也没有了.即使部分结果不能实用,也可以分析程序流程的问题或者数据的特点. 2. 及时用 del 释放大块内存.Python缺省是在变量范围(variablescope)之外才释放一个变量,哪怕这个变量在后面的代码没有再被用到,所以需要手动释放大的array. 注意所有对数组的引用都del之后,数组才会被del.这些引用包括A[2:]这样的view,即使np.split也只是

python numpy教程

python numpy教程 2014-08-10 22:21:56 分类: Python/Ruby 先决条件 在阅读这个教程之前,你多少需要知道点python.如果你想重新回忆下,请看看Python Tutorial. 如果你想要运行教程中的示例,你至少需要在你的电脑上安装了以下一些软件: Python NumPy 这些是可能对你有帮助的: ipython是一个净强化的交互Python Shell,对探索NumPy的特性非常方便. matplotlib将允许你绘图 Scipy在NumPy的基础

python numpy 的运算

一,基本运算 >>> a = array([1,2,3,4])>>> aarray([1, 2, 3, 4])>>> b=arange(4)>>> barray([0, 1, 2, 3])>>> a + barray([1, 3, 5, 7])>>> a - barray([1, 1, 1, 1])>>> a *barray([ 0, 2, 6, 12])>>>

以魔兽世界为引言,探讨一下python里的类

Python学到类这里就是达到了第一个瓶颈,因为此时程序思考和阅读的路线就不再直观,而是要拐一个弯弯.当突破了这一段就会达到了一个新的高度,但是"类"主要还是应用于多对象的建立,在大程序中为了省事,往往需要"类"的概念.小程序.小脚本可以不使用. "类"相当于一个"模型",有了"模型"/"图纸",才能实例化把抽象的东西成为具体.所以说"类"里的东西要有共性,以著名网游

Recurrent Neural Networks Tutorial, Part 2 &ndash; Implementing a RNN with Python, Numpy and Theano

转载 - Recurrent Neural Networks Tutorial, Part 2 – Implementing a RNN with Python, Numpy and Theano This the second part of the Recurrent Neural Network Tutorial. The first part is here. Code to follow along is on Github. In this part we will implemen

【转载】python 模块 - random生成随机数模块

http://blog.csdn.net/pipisorry/article/details/39086463 随机数种子 要每次产生随机数相同就要设置种子,相同种子数的Random对象,相同次数生成的随机数字是完全相同的: random.seed(1) 这样random.randint(0,6, (4,5))每次都产生一样的4*5的随机矩阵 关于种子的介绍可参见[Java - 常用函数Random函数] Python标准库random模块 (生成随机数模块) random.random() r

ZH奶酪:【Python】random模块

Python中的random模块用于随机数生成,对几个random模块中的函数进行简单介绍.如下:random.random() 用于生成一个0到1的随机浮点数.如: import random random.random() 输出: 0.3701787746508932 random.uniform(a,b) 用于生成一个指定范围内的随机浮点数,两个参数一个是上线,一个是下线.如: random.uniform(10,20) 输出: 16.878776709127855 random.rand