DataFrame.dot(self, other)
计算DataFrame与其他之间的矩阵乘法。
此方法计算DataFrame与其他Series,DataFrame或numpy数组的值之间的矩阵乘积。
它也可以在Python> = 3.5中使用。self @ other
参数: | other :
用于计算矩阵乘积的另一个对象。 |
返回: |
如果其他是 则将自我和其他的矩阵产品作为Serie返回。 如果other是 则在 和 |
Note
DataFrame和其他的维度必须兼容才能计算矩阵乘法。此外,DataFrame的列名称和其他索引必须包含相同的值,因为它们将在乘法之前对齐。Series的dot方法计算内积,而不是此处的矩阵乘积。
例子
1)DataFrame 与 DataFrame 的点积
import pandas as pd # 创建两个 DataFrame df1 = pd.DataFrame([[1, 2], [3, 4]]) df2 = pd.DataFrame([[5, 6], [7, 8]]) # 计算点积 result = df1.dot(df2) print(result)
2)DataFrame
与 Series
的点积
import pandas as pd # 创建一个 DataFrame 和一个 Series df = pd.DataFrame([[1, 2], [3, 4]]) s = pd.Series([5, 6]) # 计算点积 result = df.dot(s) print(result)
3)DataFrame
与 numpy.ndarray
的点积
import pandas as pd import numpy as np # 创建 DataFrame 和 numpy 数组 df = pd.DataFrame([[1, 2], [3, 4]]) arr = np.array([[5, 6], [7, 8]]) # 计算点积 result = df.dot(arr) print(result)
4)使用 @
进行矩阵乘法
使用矩阵乘法操作符 @
获得与 dot()
相同的结果
import pandas as pd # 创建 DataFrame 和 Series df = pd.DataFrame([[0, 1, -2, -1], [1, 1, 1, 1]]) # 创建另一个 DataFrame other = pd.DataFrame([[0, 1], [1, 2], [-1, -1], [2, 0]]) # 使用 @ 进行矩阵乘法 result = df @ other print(result)
5)Series
重新索引不会影响结果
import pandas as pd # 创建 DataFrame 和 Series df = pd.DataFrame([[0, 1, -2, -1], [1, 1, 1, 1]]) s = pd.Series([1, 1, 2, 1]) # 重新索引 Series s2 = s.reindex([1, 0, 2, 3]) # 计算点积 result = df.dot(s2) print(result)