相当于朱莉娅的熊猫'剪辑'

zun*_*rtj 3 julia

在pandas中,有一个clip函数(参见https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.clip.html),它将值限制在用户提供的下限和上限内.朱莉娅的等价物是什么?即,我想:

> clip.([2 3 5 10],3,5)
> [3 3 5 5]
Run Code Online (Sandbox Code Playgroud)

很显然,我可以写我自己,或使用的组合minmax,但我很惊讶地发现,那里是没有的.StatsBase提供trimwinsor函数,但这些不允许固定值作为输入,而是计数或百分位数(https://juliastats.github.io/StatsBase.jl/stable/robust.html).

fre*_*kre 8

您可能正在寻找clamp:

help?> clamp

  clamp(x, lo, hi)

  Return x if lo <= x <= hi. If x > hi, return hi. If x < lo, return lo. Arguments are promoted to a common type.
Run Code Online (Sandbox Code Playgroud)

这是标量的函数x,但我们可以使用点符号在向量上广播:

julia> clamp.([2, 3, 5, 10], 3, 5)
4-element Array{Int64,1}:
 3
 3
 5
 5
Run Code Online (Sandbox Code Playgroud)

如果您不关心原始数组,您还可以使用就地版本clamp!来修改输入:

julia> A = [2, 3, 5, 10];

julia> clamp!(A, 3, 5);

julia> A
4-element Array{Int64,1}:
 3
 3
 5
 5
Run Code Online (Sandbox Code Playgroud)