作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个随机数向量,我想使用 randperm() 函数随机排列,如下所示,但它不起作用。
X=rand(100000) # a vector of 100000 random elements
Y=randperm(X) # want to permute randomly the vector x
最佳答案
使用 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/
我是一名优秀的程序员,十分优秀!