gpt4 book ai didi

Julia : How to permute randomly a vector in julia?

转载 作者:行者123 更新时间:2023-12-04 11:18:25 31 4
gpt4 key购买 nike

我有一个随机数向量,我想使用 randperm() 函数随机排列,如下所示,但它不起作用。

X=rand(100000) # a vector of 100000 random elements
Y=randperm(X) # want to permute randomly the vector x

返回的错误是:
错误:方法错误:没有方法匹配 randperm(::Array{Float64,1})
在 eval(::Module,::Any) 中 ./boot.jl:237


谢谢

最佳答案

使用 shuffle()如果您的唯一目标是随机排列向量,则可以使用 shuffle() (Random 模块的一部分):

julia> using Random;

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

julia> shuffle(X)
5-element Array{Int64,1}:
5
4
1
2
3
如果你不想分配一个新的向量,而是想原地洗牌,你可以使用 shuffle!() :
julia> shuffle!(X);

julia> X
5-element Vector{Int64}:
3
4
2
5
1
randperm() randperm() 接受一个整数 n并给出长度为 n 的排列。您可以使用此排序然后重新排序您的原始向量:
julia> X[randperm(length(X))]
5-element Array{Int64,1}:
3
4
1
2
5
奖励:无需替换的采样
您也可以使用 StatsBase.sample() 取样相同 length(X)数组中的元素无需替换:
julia> import StatsBase;

julia> StatsBase.sample(X, length(X), replace=false)
5-element Vector{Int64}:
5
2
4
1
3

关于 Julia : How to permute randomly a vector in julia?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38010052/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com