python - python中元组的点积

标签 python dot-product

我知道可以通过以下方式找到点积:

>>> 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'
>>> 

如何解决?

最佳答案

我认为这里的问题是您尝试做的事情在数学上没有明确定义。您希望它如何工作?正确的输出应该是什么?

您的 vector3vector4 实际上是 2 x 3 形式的矩阵。这些不是坐标向量。您不能对它们应用点积。您可以将点积运算应用于 vector1vector2,因为它们的形式是 1 by n:它们是列向量。您不能将点积应用于任何非列向量的对象。

关于python - python中元组的点积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26495628/

相关文章:

c - 为什么这个矩阵点积程序在某些情况下会在最后一列打印地址?

javascript - 如何在 2 个单位向量之间弯曲单位网格

python - 写入文本文件被切断

python - 如何在 Python 中获取已排序数组的索引

python - 如何在 Mac 操作系统的 Rodeo GUI 中安装 xgboost?

大型阵列上的 numpy 相关系数 : np. dot(A, A.T) 导致段错误

python - Pandas DataFrame 和系列的矩阵乘法

python - 比较多个文本文件,并保存公共(public)值

python - Django 无效 block 标记应为 'empty' 或 'endfor'

vector - 我怎么知道两条线段是否接近共线