Python numpy中的乘法和和数组

Python numpy中的乘法和和数组,python,arrays,python-3.x,numpy,Python,Arrays,Python 3.x,Numpy,我试图用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执行此操作是

我试图用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向量并手动执行此操作?

您已经完成了一半:

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
与列向量
w.T
相乘即可得到所需的数字

请注意,您必须确保阵列的尺寸匹配

你已经走到一半了:

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
与列向量
w.T
相乘即可得到所需的数字


请注意,您必须确保阵列的尺寸匹配

我只是尝试一下,但我得到了以下错误:
ValueError:shapes(4,)和(3,)未对齐:4(dim0)!=3(dim 0)
我是舒尔,尺寸匹配。@rafaelleru,请将我的代码复制并粘贴到Python控制台中,并检查阵列尺寸。线性代数只适用于适当的维数。顺便说一句,在初始化
w
时,您的代码中有拼写错误:在某些地方应该有小数点
而不是逗号
,因此确保它们不会滑入实际代码。@rafaelleru,此外,欧氏距离由
np.sqrt(np.sum((a-b)**2))
给出,因此,您还应该从
结果中提取根。我只是尝试了一下,但得到了以下错误:
ValueError:shapes(4,)和(3,)未对齐:4(dim 0)!=3(dim 0)
我是舒尔,尺寸匹配。@rafaelleru,请将我的代码复制并粘贴到Python控制台中,并检查阵列尺寸。线性代数只适用于适当的维数。顺便说一句,在初始化
w
时,您的代码中有拼写错误:在某些地方应该有小数点
而不是逗号
,因此确保它们不会滑入实际代码。@rafaelleru,此外,欧氏距离由
np.sqrt(np.sum((a-b)**2))
给出,因此,您还应该从
result
a=((1,2,3))
等数组中提取根。这些数组不是合适的numpy数组。您能添加更具代表性的实际数据吗?
a=((1,2,3))
等都不是合适的numpy数组。你能不能增加一些更能代表实际情况的数据?