【发布时间】:2016-07-03 00:45:39
【问题描述】:
我正在尝试创建 10 个元素的唯一随机整数数组。但是我无法创建具有唯一值的数组。 Julia 中有没有类似 Pythons sample function 的东西?
numbers = zeros(Array(Int64, 10))
rand!(1:100, numbers)
谢谢。
【问题讨论】:
标签: random integer julia random-sample
我正在尝试创建 10 个元素的唯一随机整数数组。但是我无法创建具有唯一值的数组。 Julia 中有没有类似 Pythons sample function 的东西?
numbers = zeros(Array(Int64, 10))
rand!(1:100, numbers)
谢谢。
【问题讨论】:
标签: random integer julia random-sample
StatsBase 中有一个sample 函数:
using StatsBase
a = sample(1:100, 10, replace = false)
这将从 1:100 抽取长度为 10 的样本,无需替换。
【讨论】:
A = sample(1:100, 10, 5, replace = false)
sample 一个维度为 m*n 的向量,然后 reshape 将它转换成一个 (m, n) 矩阵。
如果性能不是问题(即样本范围不是太大,或者样本计数接近样本范围),并且无论出于何种原因您不想使用额外的包,请尝试:
a = randperm(100)[1:10]
【讨论】:
独特的(itr[, dim])
返回一个仅包含可迭代 itr 的唯一元素的数组
unique([rand(1:100) for r in 1:20])[1:10]
设置()
集合是元素的集合,就像数组或字典一样,没有重复的元素。
{rand(1:100) for r in 1:20}[1:10]
【讨论】: