python3 2个序列a和b,格式都是1800行,2列数组,对与a中的每一个点c,都从b中找到与c最近的点
时间: 2024-10-22 14:27:11 浏览: 21
2018 第九届 蓝桥杯大赛个人赛决赛-A组赛题 C++
在Python 3中,如果你有两个二维数组`a`和`b`,每个数组都有1800行和2列,你可以使用一些数值计算库如NumPy来进行这种最近邻查找操作。首先,你需要将两个数组转换成NumPy数组以便于处理。
```python
import numpy as np
# 假设 a 和 b 都已经被加载到内存中
a = np.array(a)
b = np.array(b)
# 对于 a 中的每个点 c
c = a.reshape(-1, 2) # 将一维数组转成二维数组,每一行是一个点
distances = np.sqrt(np.sum((c[:, np.newaxis, :] - b)**2, axis=-1)) # 计算两点间的欧氏距离
closest_indices = distances.argmin(axis=1) # 找到每个点 c 到 b 中所有点的最小距离索引
# closest_points 存储了对应的结果
closest_points = b[closest_indices]
```
这个代码片段首先计算了`c`中的每个点到`b`中所有点的距离,并保存在`distances`数组中。然后通过`argmin()`函数找出每个点的最小距离对应的索引,即最接近的点的位置。最后,`closest_points`就是`b`数组中每个`c`点对应最近的点。
阅读全文