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