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 [email protected]
在您的项目中使用它
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
-
pearson
1.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