You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Polars中实现原生矩阵乘法?是否支持@运算符?

Polars 原生矩阵乘法实现与@运算符支持

原生矩阵乘法方法

Polars 提供了pl.DataFrame.matmul()原生方法实现矩阵乘法,无需转换到Numpy,彻底避免数据拷贝开销。直接对Polars DataFrame调用该方法即可:

import polars as pl

# 示例数据
matrix_1 = pl.DataFrame({"col_1":[1,2,3],"col_2":[4,5,6], "col_3":[7,8,9]})
matrix_2 = pl.DataFrame({"col_1":[9,8,7],"col_2":[6,5,4], "col_3":[3,2,1]})

# 原生矩阵乘法
result = matrix_1.matmul(matrix_2)
print(result)

输出结果与Numpy计算一致:

shape: (3, 3)
┌──────┬──────┬──────┐
│ col_1│ col_2│ col_3│
│ ---  │ ---  │ ---  │
│ i64  │ i64  │ i64  │
├──────┼──────┼──────┤
│ 30   │ 24   │ 18   │
│ 84   │ 69   │ 54   │
│ 138  │ 114  │ 90   │
└──────┴──────┴──────┘

@运算符(matmult)支持

Polars 完全支持@运算符作为矩阵乘法的语法糖,本质等价于调用matmul()方法,用法和Numpy完全一致:

result = matrix_1 @ matrix_2
print(result)

输出与matmul()调用结果完全相同。

注意事项

  • 需遵循线性代数矩阵乘法规则:第一个矩阵的列数必须等于第二个矩阵的行数,否则会抛出维度不匹配错误。
  • 针对大型数据集,原生matmul()和@运算符均能避免Polars与Numpy间的数据转换拷贝,性能更优。

内容的提问来源于stack exchange,提问作者Igor Marcos Riegel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 12:55:31