在数据集中仔细查找最近的点对(如重复点)

closel的Python项目详细描述


紧密:三角尺:

PyPI versionBuild Status

在数组中查找最近的对。

利用主成分分析(pca)将维数降到2,并采用分治算法寻找最接近的点对。

开始

pip install closely

或从源安装:

git clone https://github.com/justinshenk/closely
cd closely
pip install .

如何使用

importclosely# X is an n x m numpy arraypairs,distances=closely.solve(X,n=1)

可以指定要用n标识的对数。

示例

importcloselyimportnumpyasnpimportmatplotlib.pyplotasplt# Create datasetX=np.random.random((100,2))pairs,distance=closely.solve(X,n=1)# Plot pointsz,y=np.split(X,2,axis=1)fig,ax=plt.subplots()ax.scatter(z,y)fori,txtinenumerate(X):ifiinpairs:ax.annotate(i,(z[i],y[i]),color='red')else:ax.annotate(i,(z[i],y[i]))plt.show()

检查对:

In [10]: pairs                                                                                                                                
Out[10]: 
array([[ 7, 16],
       [96, 50]])

输出: example_plot

注意事项

如果数据有3个以上的特征,closely将通过将其投影到解释大部分方差的两个方向来降低维数。这加快了处理速度,但不是100%精确。换句话说,如果数据有四列(例如,x,y,z,a),它将在新的投影基p1和p2上应用“分而治之”。

如果n>;1,它还会删除一对中的第一个点在极少数情况下,如果数据高度重叠,则会导致假阴性

信用和解释

Python代码由Andriy Lazorenko修改,打包后可用于Justin Shenk的>;2特性

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Grid loadmask(true)在gxt中不起作用   java将字符串索引转换为整数   为什么Java泛型适用于基元数组,但不适用于基元数组?   java如何让Azure应用程序服务Tomcat将所有80/443流量转发到运行在同一应用程序服务上的JBoss   具有多个值的java转换映射到树?   java如何设置SQL server连接URL?   java设置了多个相互独立的JFrame   安全性在JAVA中如何使用RSAPrivateKey的密码短语?   java不能使用比Apache Velocity中更大的条件   如何在Java中打印字符串的所有排列   停止Android Studio自动导入java。sql。日期   对象简单计算器程序java   java如何在安卓中使用“&”符号作为字符串?   java Connect,为我的安卓应用程序从REST API发布和获取数据