gpt4 book ai didi

Julia:如何有效计算 `Vector{Union{T, Missing}}` 中缺失的数量

转载 作者:行者123 更新时间:2023-12-02 09:05:26 24 4
gpt4 key购买 nike

考虑

x = rand([missing, rand(Int, 100)...], 1_000_000)

产生 typeof(x) = Array{Union{Missing, Int64},1} .

计算 x 中缺失次数的最有效方法是什么? ?

最佳答案

最干净的方法可能只是

count(ismissing, x)

简单、易记、快速

由于您要求“最有效”的方式,让我给出一些基准测试结果。它比@xiaodai 的答案略快,并且与简单的循环实现一样快:
julia> @btime count($ismissing,$x);
278.499 μs (0 allocations: 0 bytes)

julia> @btime mapreduce($ismissing, $+, $x);
293.901 μs (0 allocations: 0 bytes)

julia> @btime count_missing($x)
278.499 μs (0 allocations: 0 bytes)

在哪里
julia> function count_missing(x)
c = 0
@inbounds for i in eachindex(x)
if ismissing(x[i])
c += 1
end
end
return c
end

免费抽象,按照您希望的方式进行。

关于Julia:如何有效计算 `Vector{Union{T, Missing}}` 中缺失的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59121946/

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