Numpy 矢量化np.minimum&;np.带广播的轴上最小值

Numpy 矢量化np.minimum&;np.带广播的轴上最小值,numpy,array-broadcasting,Numpy,Array Broadcasting,我大概有点像 A = np.random.random([n, 2]) B = np.random.random([3, 2]) ... ret = 0 for b in B: for a in A: start = np.max([a[0], b[0]]) end = np.min([a[1], b[1]]) ret += np.max([0, end - start]) return ret 换句话说,A是一个包含n2D间隔的输入数组

我大概有点像

A = np.random.random([n, 2])
B = np.random.random([3, 2])
...
ret = 0
for b in B:
    for a in A:
        start = np.max([a[0], b[0]])
        end = np.min([a[1], b[1]])
        ret += np.max([0, end - start])
return ret
换句话说,
A
是一个包含
n
2D间隔的输入数组,
B
是一个已知的2D间隔数组,我试图计算所有间隔之间的总交集长度


有没有办法把它矢量化?我的第一个想法是在广播的同时使用
np.maximize
np.minimize
,但似乎什么都不起作用。

Broadcast
在扩展维度以矢量化事物之后-

p1 = np.maximum(A[:,None,0],B[:,0])
p2 = np.minimum(A[:,None,1],B[:,1])
ret = np.maximum(0,p2-p1).sum()