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)