【发布时间】:2014-10-21 20:23:52
【问题描述】:
我了解可以通过以下方式找到点积:
>>> vector1 = (2,3,5)
>>> vector2 = (3,4,6)
>>> sum(p*q for p,q in zip(vector1, vector2))
48
但我试图找到一个元组的点积说:
>>> vector3 = ((2,2),(3,3),(5,5))
>>> vector4 = ((3,3),(4,4),(6,6))
如何在不使用 numpy 的情况下做到这一点。
我不能只使用像sum(p*q for p,q in zip(vector3, vector4)) 这样的语句吗?
因为当我尝试相同的时候,我得到一个错误如下:
>>> vector3 = ((2,2),(3,3),(5,5))
>>> vector4 = ((3,3),(4,4),(6,6))
>>> sum(p*q for p,q in zip(vector3, vector4))
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
sum(p*q for p,q in zip(vector1, vector2))
File "<pyshell#5>", line 1, in <genexpr>
sum(p*q for p,q in zip(vector3, vector4))
TypeError: can't multiply sequence by non-int of type 'tuple'
>>>
如何解决?
【问题讨论】:
-
@gnibbler 我相信你会知道的
-
你相乘的对是例如
(2, 2) * (3, 3);你期待什么答案? -
@jonrsharpe 我明白这一点。但我正在寻找docs.scipy.org/doc/numpy/reference/generated/numpy.dot.html 中的二维数组矩阵
-
您需要更具体地了解您要查找的二维矩阵。例如,您是在寻找
np.dot(vector3, np.transpose(vector4))或np.dot(np.transpose(vector3), vector4),还是其他? -
@unutbu 类似于docs.scipy.org/doc/numpy/reference/generated/numpy.dot.html 中的那个,如果您搜索“对于二维数组,它是矩阵乘积:”
标签: python dot-product