B站学习——Julia科学计算之概率分布

Distributions库

1、使用库

julia> using Distributions

2、生成正太分布模型n1

julia> n1 = Normal(20, 2.0)
Normal{Float64}(μ=20.0, σ=2.0)

julia> params(n1)                   # 查看参数
(20.0, 2.0)

julia> fieldnames(typeof(n1))
(:μ, :σ)

3、生成满足n1模型的随机数

julia> rand(n1,100)
100-element Array{Float64,1}:
 22.99877973597333618.929294779535354
 18.0287056146861

4、分析随机数Normal分布的参数值

julia> fit(Normal, rand(10))
Normal{Float64}(μ=0.6388383569051563, σ=0.32661323339809056)

5、二项分布

julia> rand(b, 1000)
1000-element Array{Int64,1}:
 1615
 18

6、概率密度

julia> n = Normal()
Normal{Float64}(μ=0.0, σ=1.0)

julia> pdf(n, 0.4)
0.36827014030332333

julia> pdf(n, 0)                # 标准正太分布在x=0处的概率密度为0.398...
0.3989422804014327

7、分布函数

julia> cdf(n, 0.4)
0.6554217416103242

8、分位数

julia> quantile.(n, [0.25, 0.5, 0.95])
3-element Array{Float64,1}:
 -0.6744897501960818
  0.0
  1.6448536269514717

StatsBase库

1、使用库

julia> using StatsBase

2、按顺序对比,计算不相等的元素个数

julia> a = collect(1:6)
6-element Array{Int64,1}:
 1
 2
 3
 4
 5
 6

julia> b = collect(4:9)
6-element Array{Int64,1}:
 4
 5
 6
 7
 8
 9

julia> countne(a,b)
6

3、按顺序对比,计算相等的元素个数

julia> counteq(a,b)
0

4、L1距离和L2距离

julia> L1dist(a,b)              # abs(a[1]-b[1])+...+abs(a[n]-b[n])
18.0

julia> L2dist(a,b)              # sqrt((a[1]-b[1])^2)+...+sqrt((a[n]-b[n])^2)
7.3484692283495345

julia> meanad(a,b)              # L1dist(a,b) / n
3.0

5、采样数据

julia> sample(a)                    # 采样一次
2

julia> sample(a, 3)                 # 采样三次
3-element Array{Int64,1}:
 6
 5
 2
 
julia> a1 = [1, 10, 20, 30]
julia> a2 = [100.0, 200.0, 300.0]
julia> sample!(a1, a2)              # 按a2的类型,从a1中取出length(a2)次数据
3-element Array{Float64,1}:
 20.0
  1.0
 30.0

6、其他函数

julia> x = [1.0, 2.0, 3.0, 4.0]

julia> autocov(x)
4-element Array{Float64,1}:
  1.25
  0.3125
 -0.375
 -0.5625

julia> autocor(x)
4-element Array{Float64,1}:
  1.0
  0.25
 -0.3 
 -0.45

版权声明:本文为weixin_44035880原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。