三维空间点到原点距离python_用python-numpy求三维空间中点的k个最近邻

本文展示了如何使用numpy和scipy.spatial在三维空间中计算点到原点的距离,并找到每个点的k个最近邻。通过创建随机点数组,计算距离矩阵,并使用argsort获取最近邻列表,可以实现这一目标。
摘要由CSDN通过智能技术生成

首先,让我们创建一个在三维空间中存储点的示例数组:import numpy as np

N = 10 # The number of points

points = np.random.rand(N, 3)

print(points)

输出:

^{pr2}$

我们计算每个点到所有其他点的距离:from scipy.spatial import distance

D = distance.squareform(distance.pdist(points))

print(np.round(D, 1)) # Rounding to fit the array on screen

输出:array([[ 0. , 0.4, 0.4, 0.2, 0.5, 0.5, 0.6, 0.5, 0.6, 0.8],

[ 0.4, 0. , 0.2, 0.3, 0.3, 0.7, 0.4, 0.4, 0.6, 0.5],

[ 0.4, 0.2, 0. , 0.3, 0.1, 0.7, 0.6, 0.6, 0.8, 0.6],

[ 0.2, 0.3, 0.3, 0. , 0.4, 0.6, 0.6, 0.6, 0.7, 0.8],

[ 0.5, 0.3, 0.1, 0.4, 0. , 0.7, 0.6, 0.6, 0.8, 0.6],

[ 0.5, 0.7, 0.7, 0.6, 0.7, 0. , 0.7, 0.6, 0.7, 0.8],

[ 0.6, 0.4, 0.6, 0.6, 0.6, 0.7, 0. , 0.1, 0.2, 0.4],

[ 0.5, 0.4, 0.6, 0.6, 0.6, 0.6, 0.1, 0. , 0.3, 0.4],

[ 0.6, 0.6, 0.8, 0.7, 0.8, 0.7, 0.2, 0.3,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值