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