19 个稳定版本
| 1.7.1 | 2024年7月12日 |
|---|---|
| 1.6.3 | 2024年3月20日 |
| 1.6.2 | 2023年11月12日 |
| 1.1.2 | 2023年7月18日 |
| 0.1.1 | 2020年4月22日 |
#120 在 算法 中
211 每月下载量
用于 2 crates
105KB
2K SLoC
Distances (v1.7.1)
为高维数据提供快速和通用的距离函数。
使用方法
将此添加到您的项目中
> cargo add distances@1.7.1
在您的项目中使用它
use distances::Number;
use distances::vectors::euclidean;
let a = [1.0_f32, 2.0, 3.0];
let b = [4.0_f32, 5.0, 6.0];
let distance: f32 = euclidean(&a, &b);
assert!((distance - (27.0_f32).sqrt()).abs() < 1e-6);
功能
- 一个用于抽象不同数值类型的
Number特性。- 距离函数对实现
Number的返回类型是通用的。 - 距离函数也可以对输入类型为
Number集合是通用的。
- 距离函数对实现
- 针对浮点类型的 SIMD 加速实现。
- 使用
maturin和pyo3的 Python 绑定。 -
no_std支持。
可用的距离函数
- 向量(高维数据)
-
euclidean -
squared_euclidean -
manhattan -
chebyshev -
minkowski- 一般 Lp-norm。
-
minkowski_p- 一般 Lp-norm 的
p次幂。
- 一般 Lp-norm 的
-
cosine -
hamming -
canberra -
bray_curtis -
pearson1.0 - r其中r是 Pearson 相关系数
-
- 概率分布
-
wasserstein -
bhattacharyya -
hellinger
-
- 字符串数据,例如用于基因组序列
-
levenshtein -
needleman_wunsch -
smith_waterman -
hamming - 上述函数的归一化版本。
-
- 集合
-
jaccard -
dice -
kulsinski -
hausdorff
-
- 图
-
tanamoto
-
- 时间序列
-
dtw -
msm -
erp
-
贡献
欢迎、鼓励并感谢贡献!请参阅 CONTRIBUTING.md。
许可证
在MIT许可证下授权。
依赖项
~0.6–1.3MB
~28K SLoC