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

如何高效对列表中可变数量的矩阵进行连续相乘?

解决方案

np.linalg.multi_dot 本身支持直接传入包含任意数量矩阵的列表对象,不需要手动枚举每个元素的索引,直接将存储矩阵的列表作为参数传入即可。

代码示例

import numpy as np

# 代码开头可自由设置矩阵数量
matrix_count = 6
# 示例:生成包含matrix_count个矩阵的列表a
a = [np.random.rand(3, 3) for _ in range(matrix_count)]

# 直接传入列表完成连续相乘,无需手动写每个索引
M.append(np.linalg.multi_dot(a))

其他可选实现

如果需要自定义相乘逻辑,也可以用functools.reduce实现,不过该方式不会自动优化相乘顺序,大尺寸矩阵场景下效率低于multi_dot:

from functools import reduce
# 两种写法等价
M.append(reduce(np.dot, a))
M.append(reduce(lambda x, y: x @ y, a))

内容的提问来源于stack exchange,提问作者Nrmn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:54:07