因此我们可以使用numpy数组执行此操作:
IN:
a = np.array([1,2,3])
b = np.array([[1,2,3], [1,2,4], [1,2,5]])
a+b
OUT:
array([[2, 4, 6],
[2, 4, 7],
[2, 4, 8]])
我有这个功能,其中di和dj是相同长度的列表或数组,KL是scipy.stats.entropy
def dis(di,dj):
di = np.array(di)
dj = np.array(dj)
m = 0.5 * (di+dj)
kl1 = KL(di,m)
kl2 = KL(dj,m)
return 0.5*(kl1+kl2)
我想知道是否有办法将这个功能应用为+ b:
dis(a,b)
所以不要这样做:
for x in b:
dis(a,x)
尝试运行时出现此错误:
dis(a,b)
更新由于hpaulj建议解决错误后,我得到以下结果: 结果2
结果的问题是KL应该只给出正值。所以我不安静得到的是: DIS(A,B) 实际上是在做。