在数据分析中,数据的获取是第一步,numpy.random 模块提供了非常全的自动产生数据API,是学习数据分析的第一步。

总体来说,numpy.random模块分为四个部分,对应四种功能:

简单随机数: 产生简单的随机数据,可以是任何维度

排列:将所给对象随机排列

分布:产生指定分布的数据,如高斯分布等

生成器:种随机数种子,根据同一种子产生的随机数是相同的

1. 生成器

电脑产生随机数需要明白以下几点:

随机数是由随机种子根据一定的计算方法计算出来的数值。所以,只要计算方法一定,随机种子一定,那么产生的随机数就不会变。

只要用户不设置随机种子,那么在默认情况下随机种子来自系统时钟(即定时/计数器的值)

随机数产生的算法与系统有关,Windows和Linux是不同的,也就是说,即便是随机种子一样,不同系统产生的随机数也不一样。

numpy.random 设置种子的方法有:

函数名称

函数功能

参数说明

RandomState

定义种子类

RandomState是一个种子类,提供了各种种子方法,最常用seed

seed([seed])

定义全局种子

参数为整数或者矩阵

2. 简单随机数

函数名称

函数功能

参数说明

rand(d0, d1, …, dn)

产生均匀分布的随机数

dn为第n维数据的维度

randn(d0, d1, …, dn)

产生标准正态分布随机数

dn为第n维数据的维度

randint(low[, high, size, dtype])

产生随机整数

low:最小值;high:最大值;size:数据个数

random_sample([size])

在[0,1)内产生随机数

size:随机数的shape,可以为元祖或者列表,[2,3]表示2维随机数,维度为(2,3)

random([size])

同random_sample([size])

同random_sample([size])

ranf([size])

同random_sample([size])

同random_sample([size])

sample([size]))

同random_sample([size])

同random_sample([size])

choice(a[, size, replace, p])

从a中随机选择指定数据

a:1维数组 size:返回数据形状

bytes(length)

返回随机位

length:位的长度

python生成随机数、随机字符串

import random

import string

# 随机整数:

print random.randint(1,50)

# 随机选取0到100间的偶数:

print random.randrange(0, 101, 2)

#随机产生范围内数字

random.randrange(1000,2000)

# 随机浮点数:

print random.random()

print random.uniform(1, 10)

# 随机字符:

print random.choice('abcdefghijklmnopqrstuvwxyz!@#$%^&*()')

# 多个字符中生成指定数量的随机字符:

print random.sample('zyxwvutsrqponmlkjihgfedcba',5)

----->>[w],[e],[r],[t]

#Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

import random

import numpy as np

b=(random.sample('zyxwv1684365136461utsrqp1234567890onmlkjihgfedcba',4))

print("".join(b))

---->>w68f

# 从a-zA-Z0-9生成指定数量的随机字符:

ran_str = ''.join(random.sample(string.ascii_letters + string.digits, 8))

print ran_str

# 多个字符中选取指定数量的字符组成新字符串:

prin ''.join(random.sample(['z','y','x','w','v','u','t','s','r','q','p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a'], 5))

# 随机选取字符串:

print random.choice(['剪刀', '石头', '布'])

# 打乱排序

items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

print random.shuffle(items)

#产生2行三列均匀分布随机数组

print random.rand(2,3)

#三行三列正态分布随机数据

print random.randn(3,3) # #(1,100)以内的5行5列随机整数

print random.randint(1,100,[5,5]) # #以内10个随机浮点数

print random.random(10) #(0,1)

#内随机选择一个数

3. 分布

numpy.random模块提供了产生各种分布随机数的API:

函数名称

函数功能

参数说明

beta(a, b[, size])

贝塔分布样本,在 [0, 1]内。

binomial(n, p[, size])

二项分布的样本。

chisquare(df[, size])

卡方分布样本。

dirichlet(alpha[, size])

狄利克雷分布样本。

exponential([scale, size])

指数分布

f(dfnum, dfden[, size])

F分布样本。

gamma(shape[, scale, size])

伽马分布

geometric(p[, size])

几何分布

gumbel([loc, scale, size])

耿贝尔分布。

hypergeometric(ngood, nbad, nsample[, size])

超几何分布样本。

laplace([loc, scale, size])

拉普拉斯或双指数分布样本

logistic([loc, scale, size])

Logistic分布样本

lognormal([mean, sigma, size])

对数正态分布

logseries(p[, size])

对数级数分布。

multinomial(n, pvals[, size])

多项分布

multivariate_normal(mean, cov[, size])

多元正态分布。

negative_binomial(n, p[, size])

负二项分布

noncentral_chisquare(df, nonc[, size])

非中心卡方分布

noncentral_f(dfnum, dfden, nonc[, size])

非中心F分布

normal([loc, scale, size])

正态(高斯)分布

pareto(a[, size])

帕累托(Lomax)分布

poisson([lam, size])

泊松分布

power(a[, size])

Draws samples in [0, 1] from a power distribution with positive exponent a - 1.

rayleigh([scale, size])

Rayleigh 分布

standard_cauchy([size])

标准柯西分布

standard_exponential([size])

标准的指数分布

standard_gamma(shape[, size])

标准伽马分布

standard_normal([size])

标准正态分布 (mean=0, stdev=1).

standard_t(df[, size])

Standard Student’s t distribution with df degrees of freedom.

triangular(left, mode, right[, size])

三角形分布

uniform([low, high, size])

均匀分布

vonmises(mu, kappa[, size])

von Mises分布

wald(mean, scale[, size])

瓦尔德(逆高斯)分布

weibull(a[, size])

Weibull 分布

zipf(a[, size])

齐普夫分布

#正态分布

import numpy as np

import matplotlib.pyplot as plt

mu = 1 #期望为1

sigma = 3 #标准差为3

num = 10000 #个数为10000

rand_data = np.random.normal(mu, sigma, num)

count, bins, ignored = plt.hist(rand_data, 30, normed=True)

plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) *np.exp( - (bins - mu)**2 / (2 * sigma**2)), linewidth=2, color='r')

plt.show()

4. 排列

函数名称

函数功能

参数说明

shuffle(x)

打乱对象x(多维矩阵按照第一维打乱)

矩阵或者列表

permutation(x)

打乱并返回该对象(多维矩阵按照第一维打乱)

整数或者矩阵

#正态分布

import numpy as np

rand_data = np.random.randint(1, 10, (3, 4))

print(rand_data)

np.random.shuffle(rand_data)

print(rand_data)

out:

[[4 4 4 8]

[5 6 8 2]

[1 7 6 6]]

[[4 4 4 8]

[1 7 6 6]

[5 6 8 2]]

#按照行打乱了,也就是交换了行

python二项分布产生随机数_python随机生成 - osc_c10h48oh的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐

  1. python列表去重效率_python面试题 - osc_yztbpii7的个人空间 - OSCHINA - 中文开源技术交流社区...

    1.一行代码实现1--100之和 In [1]: sum(range(1,101)) Out[1]: 5050 1-100求和 2.如何在一个函数内部修改全局变量 a=520 deffun():glo ...

  2. python 条件表达式换行_Python基础语法 - LongKing-Xu的个人空间 - OSCHINA - 中文开源技术交流社区...

    python基础语法 一.标识符 在Python中,所有标识符可以包括英文.数字以及下划线(_),但不能以数字开头. 在Python中的标识符是区分大小写的. 在Python中以下划线开头的标识符是有 ...

  3. python清空变量值_Python的变量 - YGH1215的个人空间 - OSCHINA - 中文开源技术交流社区...

    听完下面这首日语歌,你也差不多阅读完此文了   : ) 1. 概念 Python变量是用于存储值所在的内存位置.换句话说,python程序中的变量将数据提供给计算机进行处理. Python中的每个值都 ...

  4. python包管理机制_Python 包机制 - osc_8wyy9cyu的个人空间 - OSCHINA - 中文开源技术交流社区...

    Python中的Module是比较重要的概念.常见的情况是,事先写好一个.py文 件,在另一个文件中需要import时,将事先写好的.py文件拷贝 到当前目录,或者是在sys.path中增加事先写好的 ...

  5. python日常工作_python日常工作 - osc_sd6j22mg的个人空间 - OSCHINA - 中文开源技术交流社区...

    分析nginx日志,得出用户ip及用户相关信息.(访问次,流量量大,相应时间) logip = {'1.1.1.1':[200,20M,1S],} 'please' enter your want i ...

  6. jmu-python-函数-找钱_python函数题 - osc_wv1mxwu2的个人空间 - OSCHINA - 中文开源技术交流社区...

    请大家严格按照下面顺序编写圆形生成器程序. : 定义函数getCircleArea(r),可以对指定r计算圆面积.计算公式math库的pi*r*r. 定义函数get_rList(n),功能:输入n个值 ...

  7. python作业大全_Python作业汇总 - osc_p8sbsl3n的个人空间 - OSCHINA - 中文开源技术交流社区...

    1. info = 'abc' info[2] = 'd' 结果是什么,为什么会报错呢? info[2]已赋值,不能再次赋值."str"对象不支持项目分配 2. 如果要把上面的字符 ...

  8. python变量无需指定类型对吗_Python变量类型 - osc_3rgq3dae的个人空间 - OSCHINA - 中文开源技术交流社区...

    变量存储在内存中的值,这就意味着在创建变量时会在内存开辟一个空间. 基于变量的数据类型,解析器会分配指定内存,并决定什么数据可以被存储在内存中. 因此变量可以指定不同的数据类型,这些变量可以存储整数. ...

  9. python语言是由谁设计并领导开发的_python语言概述 - osc_lt3ocv4d的个人空间 - OSCHINA - 中文开源技术交流社区...

    python语言的发展 python语言诞生于1990年,由Guide van Rossum设计并领导开发. python语言是开源项目的优秀代表,其解释器的全部代码都是开源的. 编写Hello程序 ...

  10. python之禅中文原文_Python之禅 - osc_ns45oss7的个人空间 - OSCHINA - 中文开源技术交流社区...

    在博主学习 Python 的模块部分中,曾不小心写下了这句: import this 则导致出现了以下内容: 原文及翻译: The Zen of Python, by Tim Peters Beaut ...

最新文章

  1. 机器学习中的训练集 验证集 测试集的关系
  2. donsker定理_中心极限定理和Donsker定理
  3. Ardino基础教程 1_让Arduino说出HelloWorld
  4. qt mysql数据库连接池_qt中使用数据库连接池
  5. Android studio中添加外部的jar包
  6. English——视频总结(一)
  7. 80%的销售来源于第4至11次的跟踪!
  8. mock server java_1分钟搭建极简mock server
  9. SAP Enable Now
  10. 海康威视+虹软人脸识别
  11. 头歌—练习-Java循环综合练习四之日历打印
  12. 基于Python的数据结构实验——顺序表与单链表建立与操作(附详细代码和注释)
  13. linux获取android界面,Android中 adb shell ps 查看手机中进程信息
  14. 【机器学习】22个开源的机器学习库,帮助您选择一个适合您的管道工具。
  15. 【安卓实验】实验五、广播实验
  16. 一文MOS管串联并联驱动应用解析-KIA MOS管
  17. 【BZOJ】3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛(排列组合+乘法逆元+欧拉定理/费马小定理)...
  18. 带plx芯片的服务器主板,主板上面都有啥?常见板载芯片功能介绍(三)
  19. 深圳 上海 北京 南京 武汉
  20. 惠普ubuntu安装bios设置

热门文章

  1. Failed to open /var/lib/samba/private/secrets.tdb
  2. C1认证:植物大战僵尸存档详解
  3. JMM,synchronized
  4. Iphone连接Openwrt的IPSEC服务器
  5. tpshop报 商业用途必须购买正版,使用盗版将追究法律责任
  6. SAP License:公司上一套sap系统得多少钱?
  7. MongoDB 分片集群故障RECOVERING 处理纪实
  8. 32位计算机装64位操作系统,电脑应该装32位还是64位系统?
  9. django improperly configured
  10. Hive3.1.2 on spark