我有一个大矩阵(28960×45807 Array{Float64,2}),其中行表示个体,列表示snpID。现在我想得到一个子集矩阵(28960x4580), snps是从大矩阵中随机选择的。我怎么用Julia做呢?
假设你的矩阵是x
:
using StatsBase
@view x[:, sample(1:size(x,2), 4580, replace=false, ordered=true)]
Exaplanation:
- 使用
@view
可以避免数据复制。可以在此命令中跳过它,但这会使性能恶化 - 冒号
:
选择所有行的数据,数组切片的第二个参数用于选择一堆列 size(x,2)
返回列数- 我们使用
StatsBase
中的sample
对列号进行采样而不进行替换。此外,我假设您不想更改列 的顺序。