【问题标题】:Is there any easy way to calculate the percentage change of a vector in rust? [duplicate]有没有简单的方法来计算生锈矢量的百分比变化? [复制]
【发布时间】:2021-10-04 16:26:20
【问题描述】:

有没有简单的方法来计算一个向量在 rust 中的百分比变化?

还是我只是用 for 循环遍历这些值?

let vec1 = vec![90.0, 91.0, 85.0];

let pct_change = vec1.pct_change()

预期输出:

[NaN, 0.011111, -0.065934]

【问题讨论】:

  • 当前元素和前一个元素之间的百分比变化。

标签: vector rust


【解决方案1】:

您可以使用windows() slice 方法迭代向量的 2 元素子切片:

let pct_change = vec1
    .windows(2)
    .map(|w| (w[1] - w[0]) / w[0])
    .collect::<Vec<_>>();

Playground

tuple_windows()itertools crate 提供的另一种适用于任何可迭代对象的可能性:

let pct_change = vec1
    .iter()
    .tuple_windows()
    .map(|(a, b)| (b - a) / a)
    .collect::<Vec<_>>();

Playground

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-13
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2015-09-07
    相关资源
    最近更新 更多