Python pandas.DataFrame.dot函数方法的使用

pandas.DataFrame.dot() 方法用于计算两个矩阵或者向量的点积。它可以用于矩阵与矩阵之间的乘法,也可以用于矩阵与向量之间的乘法。dot() 方法支持 NumPy 数组或 Pandas 对象作为参数。点积在数据分析和机器学习中的各种操作中很常见。本文主要介绍一下Pandas中pandas.DataFrame.dot方法的使用。

DataFrame.dot(self, other)

计算DataFrame与其他之间的矩阵乘法。
此方法计算DataFrame与其他Series,DataFrame或numpy数组的值之间的矩阵乘积。
它也可以在Python> = 3.5中使用。self @ other

参数

other : Series

DataFrame或类似数组

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

返回

SeriesDataFrame

如果其他是Series

则将自我和其他的矩阵产品作为Serie返回。

如果other是DataFramenumpy.array

则在np.arrayDataFrame中返回self

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)DataFrameSeries 的点积

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)DataFramenumpy.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)

推荐阅读
cjavapy编程之路首页