gpt4 book ai didi

python - 编程距离

转载 作者:太空宇宙 更新时间:2023-11-04 02:22:13 25 4
gpt4 key购买 nike

首先:我绝不是 Python 专家,所以这个问题可能很简单。其次,我为此工作了 2 个多小时,现在我决定需要帮助。我想在 Python 中实现距离。距离给出如下:

enter image description here

其中 ui 和 uj 是给定的向量。 d 是该向量的维数。例如:如果 ui = (1,2,3),则 ui_0= 1。

现在,这是我到目前为止的想法:(这里,xi = ui 和 xj = uj)

def dist(xi, xj, k):
distances = np.zeros(len(xi))
min1 = (0, 0)
min2 = (0, 0)
for dim in [0, len(xi)]:
for s in [-k, k]:
min1 = abs(xi[dim] - xj[dim + s])
min1[-k, k].min()
min2 = min(abs(xj[dim] - xi[dim + s]))
min2[-k, k].min()
distances = max(min1,min2)

但它不起作用。有人知道我哪里出错了吗?

回溯:

Traceback (most recent call last):   File "<input>", line 1, in
<module> File "<input>", line 8, in dist IndexError: invalid index
to scalar variable.

编辑:

好吧,我试着看看 k 最大的情况,我已经考虑了 Riley 和 Wouda 的评论。我想出了这段代码:

def dist1(xi, xj):
for dim in range(len(xi)):
for s in range(-dim, len(xi) - dim):
return max(min(abs(xi[dim] - xj[dim + s])), min(abs(xj[dim] - xi[dim + s])))

我仍然得到错误:

Traceback (most recent call last):
File "<input>", line 1, in <module>
File "<input>", line 4, in dist1
TypeError: 'numpy.int64' object is not iterable

这是怎么回事?

最佳答案

您似乎忘记了 d 也是一个参数(因为您计算了 Dist_d^{ij},其中 d 显然是一个传递的参数).与 k 一起,我认为以下代表您发布的数学片段。

def dist(xi, xj, d, k):
min1 = min(abs(xi[d] - xj[d + s]) for s in range(-k, k + 1))
min2 = min(abs(xj[d] - xi[d + s]) for s in range(-k, k + 1))

return max(min1, min2)

请注意,Python 将从列表末尾开始索引负值,这可能是也可能不是您想要的(在数学中,通常不是)。因此,正确获取此函数的参数有点棘手,您应该内置一些检查以确保所有情况都得到正确处理。

关于python - 编程距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51325979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com