gpt4 book ai didi

julia - 具有重复元素的数组的内存和计算高效创建

转载 作者:行者123 更新时间:2023-12-01 07:08:33 25 4
gpt4 key购买 nike

我试图找到一种有效的方法来创建新数组,方法是将旧数组的每个元素重复不同的指定次数。我想出了一些可行的方法,使用数组推导,但它不是很有效,无论是在内存中还是在计算中:

LENGTH = 1e6
A = collect(1:LENGTH) ## arbitrary values that will be repeated specified numbers of times
NumRepeats = [rand(20:100) for idx = 1:LENGTH] ## arbitrary numbers of times to repeat each value in A
B = vcat([ [A[idx] for n = 1:NumRepeats[idx]] for idx = 1:length(A) ]...)

理想情况下,我想要的是一种类似于 Julia 拥有的稀疏矩阵装置的结构,但它会根据出现重复值的索引有效地存储数据。除此之外,我至少想要一种有效的方法来创建上面示例中的 B 等向量。我查看了 repeat() 函数,但据我从文档和我对函数的实验中可以看出,它只是用于重复数组的切片,每个切片的次数相同.解决这个问题的最佳方法是什么?

最佳答案

听起来您正在寻找游程编码。这里有一个 RLEVectors.jl 包:https://github.com/phaverty/RLEVectors.jl .不确定它的可用性如何。您还可以相当轻松地创建自己的数据类型。

关于julia - 具有重复元素的数组的内存和计算高效创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34980556/

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