python数据分析(1)-numpy产生随机数

在数据分析中,数据的获取是第一步,numpy.random 模块提供了非常全的自动产生数据API,是学习数据分析的第一步。 总体来说,numpy.random模块分为四个部分,对应四种功能: 1. 简单随机数: 产生简单的随机数据,可以是任何维度 2. 排列:将所给对象随机排列 3. 分布:产生指定分布的数据,如高斯分布等 4. 生成器:种随机数种子,根据同一种子产生的随机数是相同的 以下是详细内容以及代码实例:(以下代码默认已导入numpy:import numpy as np

1. 生成器

电脑产生随机数需要明白以下几点: (1)随机数是由随机种子根据一定的计算方法计算出来的数值。所以,只要计算方法一定,随机种子一定,那么产生的随机数就不会变。 (2)只要用户不设置随机种子,那么在默认情况下随机种子来自系统时钟(即定时/计数器的值) (3)随机数产生的算法与系统有关,Windows和Linux是不同的,也就是说,即便是随机种子一样,不同系统产生的随机数也不一样。 numpy.random 设置种子的方法有:

函数名称

函数功能

参数说明

RandomState

定义种子类

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

seed([seed])

定义全局种子

参数为整数或者矩阵

代码示例:

np.random.seed(1234) #设置随机种子为1234

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:位的长度

代码示例

(1) np.random.rand(2,3) #产生2行三列均匀分布随机数组
Out[7]: 
array([[ 0.35369993,  0.0086019 ,  0.52609906],
       [ 0.31978928,  0.27069309,  0.21930115]])

(2)In [8]: np.random.randn(3,3) #三行三列正态分布随机数据
Out[8]: 
array([[ 2.29864491,  0.52591291, -0.80812825],
       [ 0.37035029, -0.07191693, -0.76625886],
       [-1.264493  ,  1.12006474, -0.45698648]])
(3)In [9]: np.random.randint(1,100,[5,5]) #(1,100)以内的5行5列随机整数
Out[9]: 
array([[87, 69,  3, 86, 85],
       [13, 49, 59,  7, 31],
       [19, 96, 70, 10, 71],
       [91, 10, 52, 38, 49],
       [ 8, 21, 55, 96, 34]])
(4)In [10]: np.random.random(10) #(0,1)以内10个随机浮点数
Out[10]: 
array([ 0.33846136,  0.06517708,  0.41138166,  0.34638839,  0.41977818,
        0.37188863,  0.2508949 ,  0.89923638,  0.51341298,  0.71233872])
(5)In [11]: np.random.choice(10) #[0,10)内随机选择一个数
Out[11]: 7

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

齐普夫分布

代码示例

(1)正态分布
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)

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

整数或者矩阵

代码示例

(1)正态分布
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]]
 (按照行打乱了,也就是交换了行)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ATYUN订阅号

利用协方差,Pearson相关系数和Spearman相关系数确定变量间的关系

数据集中的变量之间可能存在复杂且未知的关系。重要的是发现和量化数据集的变量相关的程度。这些知识可以帮你更好地准备数据,以满足机器学习算法的预期,例如线性回归,其...

1473
来自专栏机器之心

教程 | 5种快速易用的Python Matplotlib数据可视化方法

选自towardsdatascience 作者:George Seif 机器之心编译 参与:刘晓坤、思源 数据可视化是数据科学家工作的重要部分。在项目的早期...

3436
来自专栏Hadoop数据仓库

HAWQ + MADlib 玩转数据挖掘之(六)——主成分分析与主成分投影

一、主成分分析(Principal Component Analysis,PCA)简介         在数据挖掘中经常会遇到多个变量的问题,而且在多数情况下,...

1736
来自专栏数据小魔方

R语言可视化——密度曲线图及其美化!

今天跟大家分享关于密度曲线图及其美化技巧! 密度曲线图可能平时大家用的不多,不过其实没什么神秘,它的功能于直方图一样,都是用于表达连续型数值变量的分布形态。 ...

2705
来自专栏大数据挖掘DT机器学习

百度魅族深度学习大赛初赛冠军作品(图像识别.源码)

赛题以识别类似手写体的四则运算式为主题,参赛者需要在充满干扰信息的10万张图片中,设计算法识别图片上数学运算式并计算结果。决赛在初赛的基础上,引入分数和更加复杂...

3925

在Python中用一个长短期记忆网络来演示记忆

长期短期记忆(LSTM)网络是一种能够在长序列上学习的递归神经网络。

57711
来自专栏小樱的经验随笔

多元回归模型

回归模型 1 基本知识介绍 1.1回归模型的引入 由于客观事物内部规律的复杂性及人们认识程度的限制,无法分析实际对象内在的因果关系,建立合乎机理规律的数学模型。...

2957
来自专栏文武兼修ing——机器学习与IC设计

基于sklearn的决策树分类器理论基础代码实现

理论基础 决策树 决策树是一种树形结构的机器学习算法,所有的样本起始于根节点,每个具有子节点的父节点都有一个判断,根据判断结果将样本向子节点分流,测试样本从根节...

3028
来自专栏算法channel

机器学习决策树:提炼出分类器算法

? 前面三天推送了决策树的基本原理和选择最佳分裂特征的几种公式,用到决策树一般都会出现过拟合问题,因此需要对决策树进行剪枝,阐述了常用的几种剪枝的方法(这些方...

3228
来自专栏菩提树下的杨过

机器学习笔记(2):线性回归-使用gluon

代码来自:https://zh.gluon.ai/chapter_supervised-learning/linear-regression-gluon.htm...

683

扫码关注云+社区