python - 如何为给定的方程写出完美的循环?
问题描述
我想在 python 中为下面给出的等式编写一个 for 循环:
Z3 是大小为 M*d 的矩阵。
JSD的功能是:
def JSD(p, q, alpha):
return np.sum(np.sqrt(p+alpha) * np.log(np.sqrt(p+alpha) / np.sqrt(q+alpha)))
similarity = 0
for i in range(Z3.shape[0]):
for j in range(Z3.shape[0]):
if (Z3[j] != Z3[i]).all():
m = 0.5*(Z3[i]+Z3[j])
similarity += 0.5*JSD(Z3[i],m,2)+0.5*JSD(Z3[j],m,2)
print(similarity)
如何为上述方程编写完美的代码?
解决方案
def JSD(p, q, alpha):
return np.sum(np.sqrt(p+alpha) * np.log(np.sqrt(p+alpha) / np.sqrt(q+alpha)))
similarity = 0
for i in range(Z3.shape[0]):
for j in range(Z3.shape[0]):
if (j != i):
m = 0.5*(Z3[i]+Z3[j])
similarity += 0.5*JSD(Z3[i],m,2)+0.5*JSD(Z3[j],m,2)
print(similarity)
推荐阅读
- javascript - 如何将 html 与 ReactJS 集成
- amazon-ecs - AWS ECS Blue/Green CodePipeline:尝试读取图像工件时出现异常
- mysql - 在 JPQL 中使用 JOIN 和 SUM 进行选择
- vb.net - 如何将天数转换为小时数?
- php - 绑定后变量不从mysqli语句输出
- python - 将数组值返回到 HTML 最终会写入产品 10 次,而不是一次
- http-headers - 如何找到特定网站的 X-RateLimit-Limit
- r - 如何将.csv的每个单元格中的值除以R中多个行和变量的另一个单元格中的值?
- c++ - 正方体总是缺少图片中的文本行
- python - AttributeError:模块“tensorflow”没有属性“compat”