【发布时间】:2014-03-25 00:26:14
【问题描述】:
我有一个向量数组(或者为简单起见,你可以假设我有一个数组)基于一些计算我制作了 2 个不同的数组,第一个数组的大小相同,其中包含 0 到 1 之间的数字(对于第一个的每个索引数组包含汉明距离的第二个和第三个数组)现在我想同时基于第二个和第三个数组对第一个数组进行排序。 由于第二个和第三个数组包含 0 到 1 之间的值,我想对第一个数组进行排序,以便每个元素与第二个和第三个数组的距离最近的值为 0.5。
如果我想做一些现实的例子:
first = numpy.array([1,2,3])
second = numpy.array([0.2, 0.5, 0.97])
third = numpy.array([0.3, 0.45, .98])
first = sort(first, second, third)
之后首先必须是这样的:[2,1,3]
为什么我应该有这个?因为 second[1] 和 third[1] 是最接近 (0.5,0.5) 的点(我的意思是像欧几里得距离或任何其他距离),并且在索引号 2 之后,索引号 0 具有第二个接近点的距离(0.5,0.5)。
或者,如果我有second = numpy.array([0.62, 0.61, 0.97]) 和third = numpy.array([0.49, 0.72, 0.97]),我希望排序数组返回[0,1,2] 之类的索引,所以排序后的第一个数组是这样的[1,2,3] 为什么?因为 second[0] 和 third[0] 是离点 (0.5,0.5) 最近的点,依此类推。
【问题讨论】:
标签: python arrays sorting numpy