python - 如何从numpy数组返回索引
问题描述
我有一个包含 10 个值的数组 (x),以及另一个包含 100 个值的数组 (y)。x 中的 8 个值包含在 y 中,x 中有 2 个值不在 y 中。
我想要做的是计算 y 中的每个值与 x 中的每个值之间的距离并返回最小值。然后将 y 中的最接近的值返回到 x 中的值并绘制它们并绘制它们。
这是我到目前为止所得到的一个例子......
x = np.array([1,2,3,4,5,6,7,1100,1200,10])
y = np.linspace(0, 100, 100)
D = spatial.distance_matrix(x.reshape(-1,1), y.reshape(-1,1))
min = np.min(D, axis=1)
我现在如何返回与 min 中的值相对应的 y 中的值的数组?
我想做的是有一个数组 z 等于用于在 np.min(D, axis=1) 中最小化的最佳 y 值,并以与 x 相同的顺序排列,这样我就可以执行以下操作
plt.scatter(x,z)
并比较找到的所有值的匹配程度。
谢谢!
解决方案
对于搜索索引:
arr = np.array([1,2,3,4,5,6,7,8])
val = np.array([3,7,5,3])
index = [arr.tolist().index(i) for i in val]
index
但在您的情况下,它会引发错误,因为找不到匹配的值。
推荐阅读
- azure-active-directory - 域 *.onmicrosoft.com 中的紧急访问帐户
- wpf - WPF - 悬停时更改按钮背景颜色
- date - 在 IBM I RPG 中将数字转换为 MM/DD/YYYY 格式的日期
- android - 从 kotlin 创建复选框
- javascript - 如何修复此类型错误:无法读取未定义的属性“id”
- javascript - 强制数组中的对象到最后保留当前逻辑
- java - 管理员已添加的用户无法访问活动
- reactjs - ReactJS 分页 React Hooks
- javascript - 如果我在同一个项目中使用我设备的相机,我可以在 JS 中创建 3D 对象吗?
- jupyter-notebook - 如何传给很多机器上没有安装python的用户