获取此Python代码的Rust Vec
等价物的最惯用方法是什么?
import numpy as np
a = np.arange(5)
a_diff = np.diff(a) # this is the thing I'm trying to emulate in Rust
print(a_diff) # [1 1 1 1]
我可以想出多种不令人满意的方法来实现这一点,但我认为应该有一种使用iter()
的简单的一行程序方法,对吗?
let a: Vec<f64> = (0..5).collect::<Vec<i64>>().iter().map(|x| *x as f64).collect();
let a_diff = ???
2条答案
按热度按时间brjng4g31#
对于股票Rust,我会使用
windows
:(我还将不必要的集合删除到
Vec<i64>
中。当每晚使用时,可以缩短为:
tzdcorbm2#
如果你正在处理
Vec
,你可以使用windows
:如果你想只使用迭代器,你可以使用
scan
,但它更复杂:或者你可以从
itertools
crate中使用tuple_windows
: