python - 在 Pandas 中获取带有向量的数据帧的点积,并返回数据帧

标签 python pandas dataframe dot-product

我无法在方法 dot() 上找到条目 in the official documentation .但是方法就在那里,我可以使用它。这是为什么?

关于这个主题,有没有一种方法可以计算数据框中每一行与另一个向量的逐元素乘法? (并获得 dataframe 返回?),即类似于 dot() 但不是计算点积,而是计算元素积。

最佳答案

mul 本质上是一个外积,而 dot 是一个内积。让我扩展已接受的答案:

In [13]: df = pd.DataFrame({'A': [1., 1., 1., 2., 2., 2.], 'B': np.arange(1., 7.)})

In [14]: v1 = np.array([2,2,2,3,3,3])

In [15]: v2 = np.array([2,3])

In [16]: df.shape
Out[16]: (6, 2)

In [17]: v1.shape
Out[17]: (6,)

In [18]: v2.shape
Out[18]: (2,)

In [24]: df.mul(v2)
Out[24]: 
   A   B
0  2   3
1  2   6
2  2   9
3  4  12
4  4  15
5  4  18

In [26]: df.dot(v2)
Out[26]: 
0     5
1     8
2    11
3    16
4    19
5    22
dtype: float64

所以:

df.mul 获取形状为 (6,2) 的矩阵和向量 (6, 1) 并返回矩阵形状 (6,2)

同时:

df.dot 采用形状为 (6,2) 和向量 (2,1) 的矩阵并返回 (6,1)。

这些不是同一个操作,它们分别是外积和内积。

关于python - 在 Pandas 中获取带有向量的数据帧的点积,并返回数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15753916/

相关文章:

r - 根据行号将值分配给列表中各个数据帧的行

python - Django REST Framework @detail_route 未按预期工作

python - 使用 Scapy 和 NetFilter 队列接收自定义协议(protocol)数据包

python - Pandas :在垃圾箱内绘制平均值 - 需要格式化帮助

python - 将带有分类值的 pandas 数据帧转换为二进制值

python - 如何在 Python 中按日期对 DataFrame 进行排序?

Python - 除非指定,否则使用 pytest 跳过测试

python - Django DecimalField 在保存时生成 "quantize result has too many digits for current context"错误

python - pandas:将具有相同值的连续行分组为一组

R - 将一列数据帧拆分为多列