为了账号安全,请及时绑定邮箱和手机立即绑定

除以更大的减法值

除以更大的减法值

一只甜甜圈 2022-10-11 16:05:07
我有两个形状矩阵(43, 25520),它们被称为m1和m2。if m1 <= m2:    distance = (m1 - m2) / m2else:    distance = (m1 - m2) / m1因此,对于每个 index i,我想从中减去m2[i],m1[i]然后除以这两个中的较大值。我的错误信息是ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()如何修复错误并完成我想要的。
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

np.maximum返回两个矩阵的元素最大值:

(m1 - m2) / np.maximum(m1, m2)

如果您只想要小于一的正值,请使用np.absolute

np.absolute((m1 - m2) / np.maximum(m1, m2))

或者,你可以做

(np.maximum(m1, m2) - np.minimum(m1, m2)) / np.maximum(m1, m2))

您收到错误的原因是该表达式m1 >= m2是一个与两个数组大小相同的布尔掩码。您不能将大量布尔值转换为单个布尔值,即使可以,and 中的表达式ifelse可以对整个数组进行操作。您需要对条件进行矢量化,我已经向您展示了如何执行此操作。


查看完整回答
反对 回复 2022-10-11
  • 1 回答
  • 0 关注
  • 75 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信