python - 如何获取列表中匹配元素的壁橱索引
问题描述
我有两个相互关联的列表。原始列表和下采样列表。原始列表包含我所有的参考数据,下采样列表包含原始数据的小样本。它们看起来像这样:
原名单:
original = [
0.0,
0.033,
0.066,
0.1,
0.133,
0.166,
0.199,
0.233,
0.266,
0.299,
0.333,
0.366,
0.399,
0.433,
0.466,
0.499,
0.533,
0.566,
0.599,
0.633,
0.666,
0.699,
0.733,
0.766,
0.799,
0.833,
0.866,
0.899,
0.933,
0.966,
0.999,
1.033,
1.066,
1.099,
1.133,
1.166,
1.199,
1.232,
1.266,
1.299,
1.332,
1.366,
1.399,
1.432,
1.466,
1.499,
1.532,
1.566,
1.599,
1.632,
1.666,
1.699,
1.732,
1.766,
1.799,
1.832,
1.866,
1.899,
1.932,
1.966,
1.999,
2.032,
2.066,
2.099,
2.132,
2.166,
2.199,
2.232,
2.266,
2.299,
2.332,
2.366,
2.399,
2.432,
2.466,
2.499,
2.532,
2.566,
2.599,
2.632,
2.666,
2.699
]
和下采样列表:
downsampled = [
0.633078,
1.632956,
2.632756
]
如何获得与original
中的项目完全匹配或壁橱匹配的元素的索引downsampled
?
解决方案
在 numpy 的帮助下,使用abs
and argmin
:
import numpy as np
def dist(d):
return abs(d - np.array(original))
[np.argmin(dist(d)) for d in downsampled]
输出:
[19, 49, 79]
推荐阅读
- python - 有什么方法可以判断函数对象是 lambda 还是 def?
- node.js - Firebase 云函数突然返回@grpc 模块错误
- labview - LabVIEW:如何将计算出的簇值放入队列中?
- javascript - 正在搜索的项目取决于先前的结果
- java - 如何处理删除 DataModel 中的互连对象
- algorithm - 具有快速排序插入、排序删除和查找的数据结构
- vba - 是否可以显示用户表单并执行 .show 方法下方的代码?
- here-api - 了解 FROM_REF_SPEED_LIMIT 和 TO_REF_SPEED_LIMIT 属性
- sql-server - “CREATE TABLE”语句给出错误:数据类型后出现意外“)”
- arrays - 无法使用对象数组设置状态