Numpy基础(day2)随机函数及统计函数

Posted 啊~小 l i

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Numpy基础(day2)随机函数及统计函数相关的知识,希望对你有一定的参考价值。

Numpy常用random随机函数汇总


import numpy as np np.random.seed(666)

  • rand(d0,d1,…,dn)
    返回数据在(0,1)之间,均具有均匀分布
    np.random.rand(5)
    np.random.rand(3, 4)
    np.random.rand(3, 4, 5)
  • randn(d0,d1,…,dn)
    返回数据具有标准正态分(均值为0,方差为1)
    np.random.randn(5)
    np.random.randn(3, 4)
    np.random.randn(3, 4, 5)
  • randint(low[,hight,size,dtype])
    生成随机整数,包含low,不包含high
    如果不指定high,则从[0, low]中生成数字
    np.random.randint(3) # 生成0-3之间的数,不包含3
    np.random.randint(1, 10)
    np.random.randn(10,30,size=(2,3,4)) # 10到30之间的整数(分为两块,每块为三行四列)
  • random([size])
    生成[0.0,1.0]的随机数
    np.random.random(5)
    np.random.random(size=(3, 4))
    np.random.random(size=(3, 4, 5))
  • choice(a[,size,replace,p])
    a是一维数组,从它里面生成随机结果
    np.random.choice(5, 3) a是数字,则从range(5)中生成 size为3
    np.random.choice(5, (2,3))
    np.random.choice([2,3,4,5,6,7],3) 从数组里面随机取出数字
  • shuffle(x)
    把一个数组x进行随机排列
import numpy as np
x = np.arrange(10)
np.shuffle(x)
print(x)
a = np.arrange(10).reshape(4, 5)
np.shuffle(a) # 多维数组,则只会在第一维度打乱数据
print(a)
  • permutation(x)
    把一个数组x进行随机排列,或者数字的全排列
    np.random.permutation(10) 随机生成range(10)进行随机排列
    arr = np.arrange.reshape((3,3)) 在第一维度进行打散
    np.random.permutation(arr)创建一个新的copy,不修改原来的
  • normal([loc, scale, size])
    按照平均值loc和方差scale生成高斯分布的数字
    np.random.normal(1,10,10)
    np.random.normal(1,10,(3,4))
  • uniform([low, high, size])
    在[low,high)之间生成均匀分布的数字
    np.random.uniform(1,10,10)
    np.random.uniform(1,10,(3,4))
    demo 对数组加入随机噪声
import matplotlib.pyplot as plt
# 绘制sin曲线
x = np.linspace(-10,10,100) # 指定最小数,最大数,生成的个数
y = np.sin(x)
plt.plot(x,y)
plt.show()

# 加入噪声
x = np.linspace(-10,10,100) # 指定最小数,最大数,生成的个数
y = np.sin(x)+np.random.rand(len(x))
plt.plot(x,y)
plt.show()

加入噪声前

加入噪声后

Numpy数学统计函数

  1. 常用统计函数
  2. 按不同的axis计算
    以上的函数都有一个参数叫做axis用于指定计算轴还是列,如果不指定,就会计算所有元素结果

数学统计函数实例

import numpy as np

arr = np.arange(12).reshape(3, 4)
print(arr)
print(np.sum(arr))  # 求和 默认作为一维数组处理求和
print(np.prod(arr))  # 乘积
print(np.cumsum(arr))  # 第一位等于第一位,第二位等于第一位加第二位-----同理
print(np.cumprod(arr))  # 第一位等于第一位,第二位等于第一位乘第二位-----同理
print(np.min(arr))  # 最小值
print(np.max(arr))  # 最大值
print(np.percentile(arr, [25, 50, 75]))  # 首先将数据从小到大排列,50 表示取位置为50%的数字,取值为[0-100]
print(np.quantile(arr, [0.25, 0.5, 0.75]))  # 同上,但是取值为[0-1]
print(np.median(arr))  # 中位数
print(np.mean(arr))  # 平均值
print(np.std(arr))  # 标准差
print(np.var(arr))  # 方差
# weight的shape需要和arr一样
weight = np.random.rand(*arr.shape)
print(weight)
np.average(arr, weights=weight)  # 加权平均值

numpy的axis的用途

axis=0代表行、axis=1代表列

  • 按行求和
    arr.sum(axis=0)
  • 按列求和
    arr.sum(axis=1)

以上是关于Numpy基础(day2)随机函数及统计函数的主要内容,如果未能解决你的问题,请参考以下文章

numpy 统计函数与随机数

NumPy常用函数——构造数组函数及代码示例

人工智能数学基础--概率与统计10:离散随机变量的概率函数及常见的二项分布泊松分布

python基础2:随机数生成—random模块、numpy中的random函数

人工智能数学基础--概率与统计12:连续随机变量的概率密度函数以及正态分布

人工智能数学基础--概率与统计12:连续随机变量的概率密度函数以及正态分布