[英]multiply and sum arrays in numpy
我试图通过将一个权重添加到欧几里得距离中的每个和来计算自己的距离,例如:
a = ((1, 2, 3))
b = ((4, 5, 6))
distance = np.sum((a-b)**2)
但我要设置的距离为:
a = ((1, 2, 3))
b = ((4, 5, 6))
w = ((0.2, 0,3, 0,5))
distance = 0.2*((1-4)**2) + 0.3*((2-5)**2) + 0.5*((3-6)**2)
用numpy进行迭代是否有任何形式,而无需遍历echa vector并手动执行此操作?
您在其中途:
a = np.array([[1., 2, 3]])
b = np.array([[4., 5, 6]])
w = np.array([[0.2, 0.3, 0.5]])
result = float(np.dot((a - b)**2, w.T))
因此,您只需将行向量(a - b)**2
乘以列向量wT
即可得到所需的数字。
请注意,您必须确保阵列的尺寸匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.