gpt4 book ai didi

python - 复杂的数学公式 Python

转载 作者:行者123 更新时间:2023-12-04 04:05:47 25 4
gpt4 key购买 nike

Maths Formula我一直在尝试用 python 编写数学公式。代码正在运行,但我坚信代码没有反射(reflect)实际的数学公式,但我迷路了,我不知道哪里出错了。下面是我的代码,我附上了实际的数学公式。请检查 python 代码是否与数学公式匹配 - 如果不匹配,请协助我出错的地方。老实说,我很迷茫。

## Inter cluster distance
inter = 0
for i in range(centr.shape[1]-1):
for j in range(i+1,centr.shape[1]):
for l in range(centr.shape[0]):
inter = inter + (centr[l][i]-centr[l][j])**2
print('Intercluster distance: '+ str(inter))
## Intra cluster cluster
intra = 0
for i in range(data.shape[0]):
for j in range(centr.shape[0]):[enter image description here][2]
intra = intra + (data[i][j] - centr[j][Cc[i]-1])**2
print('Intracluster distance: '+ str(intra))

Math equation intra-cluster distance Mth equation inter-cluster distance

My code in python

Code that works Code that is not working

最佳答案

观察 range 构造函数是如何工作的:

>>> list(range(3))
[0, 1, 2]

>>> list(range(1, 3))
[1, 2]

所以默认起始值​​为 0,并且从不包括终止值。因此,您需要稍微不同的开始值和停止值。

此外,与您给出的公式相比,您代码中矩阵元素 z 的索引可能全部偏离 1 个单位,因为 Python 索引的工作方式类似于 range ,从 0 开始,而在公式中,它们显然从 1 开始。

例如对于簇间距离,我们应该有这样的代码:

## Inter cluster distance
inter = 0
for i in range(1, centr.shape[1]):
for j in range(i+1, centr.shape[1] + 1):
for l in range(1, 3 + 1):
inter = inter + (centr[l - 1][i - 1] - centr[l - 1][j - 1])**2
print('Intercluster distance: '+ str(inter))

或者您可以使索引 i, j, l 都变小一个单位并相应地索引 z 值,这应该会产生相同的结果:

## Inter cluster distance
inter = 0
for i in range(centr.shape[1] - 1):
for j in range(i, centr.shape[1]):
for l in range(3):
inter = inter + (centr[l][i] - centr[l][j])**2
print('Intercluster distance: '+ str(inter))

关于python - 复杂的数学公式 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62531831/

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