【发布时间】:2013-07-16 00:31:18
【问题描述】:
我认为我的代码可以做得更好......
我想要什么:
array a = ([1,2,3],[4,5,6],[7,8,9])
array b = ([2,3,4],[2,2,2])
与a[0] to b[0] and b[1] 的欧几里得距离,然后是该距离的最小值,以此类推,其他值...
结果应该是这样的
result = ([1,2])
我觉得我做的方式有点复杂:
result = [0]*len(b)
for i in a:
c = 0
minimum = euclid(a[0],b[0])
place = 0
for j in b:
c=c+1
if (minimum > euclid(i,j)):
minimum = euclid(i,j)
place = c
result[place-1] = result[place-1]+1
好吧,我试着更好地解释它。我有两个数组 A 和 B 数组 A 有 3 个值(值 [1,2,3])现在我想用 B 的所有值计算 A 的所有值的欧几里德距离并计算 B 的频率[0] 或 B[1] 是最小值。
所以我开始编写代码手册: 起初我用 b[0] 计算 a[0] 并发现那是最小值,因为目前没有最小值。接下来我用 b[1] 计算 a[0] 并发现 euclidean(a[0],b[1])
【问题讨论】:
-
请为您的问题写一个更好的标题,“或其他”,然后笑脸不是一个好标题。
-
“以此类推,其他值”。这是否意味着您还想要与
a[1] to b[0] and b[1]的欧几里得距离,以及与a[2] to b[0] and b[1]的欧几里得距离,等等a有多少元素?如果是这样,为什么result只有两个元素? -
我想计算从 a[0] 到 b[0],b[1] 的欧式距离并计算最小值。例如 1.round a[0] - b[0],b[1], c[0,0] if minimum = b[0] -> c[1,0] 2.round a[1] - b[ 0],b[1], c[1,0] 如果最小值 = b[1] -> c[1,1] 3.round a[2] - b[0],b[1], c[1 ,1] 如果最小值 = b[2] -> c[1,2]
-
对不起,我不明白。您是指“事件的一个阶段”中的舍入,还是“将数字近似为最接近的整数”?
c[0,0]是什么意思?在您的代码中, c 是一个整数,不能以这种方式进行索引。->运算符是什么意思?
标签: python arrays max counting minimum