pandas.DataFrame.dot#

DataFrame.dot(other)[源代码][源代码]#

计算 DataFrame 和其他之间的矩阵乘法。

此方法计算 DataFrame 和另一个 Series、DataFrame 或 numpy 数组的矩阵乘积。

它也可以使用 self @ other 来调用。

参数:
其他序列、数据框或类数组

另一个用于计算矩阵乘积的对象。

返回:
系列或数据框

如果 other 是一个 Series,返回 self 和 other 之间的矩阵乘积作为一个 Series。如果 other 是一个 DataFrame 或 numpy.array,返回 self 和 other 的矩阵乘积在一个 DataFrame 或 np.array 中。

参见

Series.dot

类似的方法用于 Series。

备注

为了计算矩阵乘法,DataFrame 和其他的维度必须兼容。此外,DataFrame 的列名和 other 的索引必须包含相同的值,因为它们将在乘法之前对齐。

Series 的点方法计算内积,而不是这里的矩阵积。

例子

这里我们将一个 DataFrame 与一个 Series 相乘。

>>> df = pd.DataFrame([[0, 1, -2, -1], [1, 1, 1, 1]])
>>> s = pd.Series([1, 1, 2, 1])
>>> df.dot(s)
0    -4
1     5
dtype: int64

这里我们将一个 DataFrame 与另一个 DataFrame 相乘。

>>> other = pd.DataFrame([[0, 1], [1, 2], [-1, -1], [2, 0]])
>>> df.dot(other)
    0   1
0   1   4
1   2   2

注意,点方法给出与 @ 相同的结果。

>>> df @ other
    0   1
0   1   4
1   2   2

即使 other 是一个 np.array,点方法也同样适用。

>>> arr = np.array([[0, 1], [1, 2], [-1, -1], [2, 0]])
>>> df.dot(arr)
    0   1
0   1   4
1   2   2

注意对象的打乱不会改变结果。

>>> s2 = s.reindex([1, 0, 2, 3])
>>> df.dot(s2)
0    -4
1     5
dtype: int64