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

使用@做矩阵乘法报错:unsupported operand type(s) for @: 'list' and 'list'

解决Python列表使用@运算符矩阵乘法报错的问题

报错原因

Python原生的list类型并不支持@运算符(矩阵乘法),这个运算符仅适用于具备矩阵运算能力的数据类型,比如NumPy的ndarray对象。

解决方案

使用NumPy库将列表转换为数组后再执行矩阵乘法,步骤如下:

  • 导入NumPy库
  • 将原生列表转为NumPy数组
  • 使用@运算符完成矩阵乘法

示例代码:

import numpy as np

# 定义两个待相乘的列表
a = [[1, 2], [3, 4]]
b = [[5, 6], [7, 8]]

# 转换为NumPy数组
np_a = np.array(a)
np_b = np.array(b)

# 执行矩阵乘法
matrix_product = np_a @ np_b
print(matrix_product)

替代方案(不使用NumPy)

如果不想依赖NumPy,可以手动实现矩阵乘法逻辑,但代码会更繁琐,示例如下:

def matrix_multiply(a, b):
    # 检查矩阵维度是否匹配
    if len(a[0]) != len(b):
        raise ValueError("矩阵维度不匹配,无法相乘")
    # 初始化结果矩阵
    result = [[0 for _ in range(len(b[0]))] for _ in range(len(a))]
    # 计算矩阵乘法
    for i in range(len(a)):
        for j in range(len(b[0])):
            for k in range(len(b)):
                result[i][j] += a[i][k] * b[k][j]
    return result

a = [[1, 2], [3, 4]]
b = [[5, 6], [7, 8]]
print(matrix_multiply(a, b))

内容的提问来源于stack exchange,提问作者Диана Профе

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 03:35:44