除以更大的减法值

我有两个形状矩阵(43, 25520),它们被称为m1和m2。


if m1 <= m2:

    distance = (m1 - m2) / m2

else:

    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()

如何修复错误并完成我想要的。


一只甜甜圈
浏览 76回答 1
1回答

泛舟湖上清波郎朗

np.maximum返回两个矩阵的元素最大值:(m1&nbsp;-&nbsp;m2)&nbsp;/&nbsp;np.maximum(m1,&nbsp;m2)如果您只想要小于一的正值,请使用np.absolute:np.absolute((m1&nbsp;-&nbsp;m2)&nbsp;/&nbsp;np.maximum(m1,&nbsp;m2))或者,你可以做(np.maximum(m1,&nbsp;m2)&nbsp;-&nbsp;np.minimum(m1,&nbsp;m2))&nbsp;/&nbsp;np.maximum(m1,&nbsp;m2))您收到错误的原因是该表达式m1 >= m2是一个与两个数组大小相同的布尔掩码。您不能将大量布尔值转换为单个布尔值,即使可以,and 中的表达式if也else可以对整个数组进行操作。您需要对条件进行矢量化,我已经向您展示了如何执行此操作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python