我想獲得一個索引向量,用于在 Rust 中對向量進行排序。實際上,我想要numpy 的argsort。
例如
let v = vec![1, 7, 4, 2];
let i = argsort(&v);
assert_eq!(i, &[0, 3, 2, 1]);
uj5u.com熱心網友回復:
不確定是否有為此預先制作的東西,但它很簡單,可以通過以下方式實作.sort_by_key():
pub fn argsort<T: Ord>(data: &[T]) -> Vec<usize> {
let mut indices = (0..data.len()).collect::<Vec<_>>();
indices.sort_by_key(|&i| &data[i]);
indices
}
看到它在操場上作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/351253.html
