我有兩個(gè)形狀矩陣(43, 25520),它們被稱為m1和m2。if m1 <= m2: distance = (m1 - m2) / m2else: distance = (m1 - m2) / m1因此,對(duì)于每個(gè) index i,我想從中減去m2[i],m1[i]然后除以這兩個(gè)中的較大值。我的錯(cuò)誤信息是ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()如何修復(fù)錯(cuò)誤并完成我想要的。
1 回答

泛舟湖上清波郎朗
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
np.maximum
返回兩個(gè)矩陣的元素最大值:
(m1 - m2) / np.maximum(m1, m2)
如果您只想要小于一的正值,請(qǐng)使用np.absolute
:
np.absolute((m1 - m2) / np.maximum(m1, m2))
或者,你可以做
(np.maximum(m1, m2) - np.minimum(m1, m2)) / np.maximum(m1, m2))
您收到錯(cuò)誤的原因是該表達(dá)式m1 >= m2
是一個(gè)與兩個(gè)數(shù)組大小相同的布爾掩碼。您不能將大量布爾值轉(zhuǎn)換為單個(gè)布爾值,即使可以,and 中的表達(dá)式if
也else
可以對(duì)整個(gè)數(shù)組進(jìn)行操作。您需要對(duì)條件進(jìn)行矢量化,我已經(jīng)向您展示了如何執(zhí)行此操作。
添加回答
舉報(bào)
0/150
提交
取消