Arrays 如何使用欧几里德距离访问最相似行上的特定项?
我有一个数组列表:Arrays 如何使用欧几里德距离访问最相似行上的特定项?,arrays,python-3.x,numpy,Arrays,Python 3.x,Numpy,我有一个数组列表: L = ( array1, array2, array3, array4... ) 这个列表是从一个Pandas数据帧开始创建的,因此,旧数据帧的每一行现在都是列表中的一个数组 使用欧几里德距离,我想: 遍历所有数组 仅选择第二项包含在10和100之间的数组 给定一个数组arr1,选择最相似的一个(比如arr4) 将arr4中的2nd项替换为arr1 要将其可视化: 遍历所有数组 L = ([87, 30, 45, 99],
L = ( array1,
array2,
array3,
array4... )
这个列表是从一个Pandas数据帧开始创建的,因此,旧数据帧的每一行现在都是列表中的一个数组
使用欧几里德距离,我想:
10
和100
之间的数组arr1
,选择最相似的一个(比如arr4
)arr4
中的2nd项替换为arr1
L = ([87, 30, 45, 99],
[11, 21, 31, 41],
[560, 47, 85, 328],
[167, 32, 98, 379] )
10
和100
L = ([87, 30, 45, 99],
[11, 21, 31, 41],
[560, 47, 85, 328],
[85, 33, 43, 97] )
arr1
,选择最相似的一个(比如arr4
)
现在让我们呼吁简化:
p=30(数组1,第2个元素)
X=32(数组4,第2个元素)arr1
2档位置(X)内arr4
(p)中的2档项目
将numpy导入为np
L=np.数组([
[87, 30, 45, 99],
[11, 21, 31, 41],
[560, 47, 85, 328],
[167, 32, 98, 379]
])
对于第2点,您可以使用np.where
,它返回一个condition.nonzero()数组,该数组指示condition在哪里为True。然后你可以把这个数组作为索引
结果=L[np.其中((L[:,1]>10)和(L[:,1]
array 1 = ( [87, 30, 45, 99] )
array 4 = ( [85, 32, 43, 97] )
array 1 = ([87, 32, 45, 99])