python - 如何仅使用numpy获取具有给定坐标的ndarray的成对距离矩阵
问题描述
我有point_coords
ndarray:
point_coord_x = np.array([np.random.randint(low=-100, high=100) for i in range(40)])
point_coord_y = np.array([np.random.randint(low=-100, high=100) for i in range(40)])
point_coords = np.array([point_coord_x, point_coord_y]).transpose()
看起来像:
point_coords
array([[ 62, -31],
[ 49, 33],
[ -2, -86],
[ -29, 49],
...
我想得到一个点之间距离的方阵。我该怎么做?
解决方案
您可以仅使用Numpy来做到这一点:
通过每个坐标(方阵)计算增量:
dx = point_coord_x[:, np.newaxis] - point_coord_x[np.newaxis, :]
dy = point_coord_y[:, np.newaxis] - point_coord_y[np.newaxis, :]
然后从这些增量计算距离数组:
result = np.sqrt(dx ** 2 + dy ** 2)
推荐阅读
- sql - 在没有在目标上定义 PK 的情况下在 Informatica 中实施 SCD 2
- movilizer - 在 movilizer 中发送单个删除时出错
- c - 支持 Unix 和 TCP 客户端的服务器
- c# - EF Core 检查相关表中的对象是否存在,如果不存在 - 添加它
- java - 使用 PHP OpenSSL 使用 JAVA Cipher 解密 aes-128-gcm 编码的内容
- c++ - 在函数调用期间临时禁用窗口
- c++ - qml中多行时删除文本
- yolo - OpenVINO - 带有 YoloV4 的工具包
- asp.net-mvc - 使用 Microsoft 的 Web API 2 和 ODATA 的 ASP.NET API 版本控制在 api 版本之间更改 JSON 属性的大小写?
- html - jquery todo list 将 li 元素附加到现有列表