当前位置: 首页 > news >正文

numpy 中二维数据 乘以(@) 一维数组。

 

在 NumPy 中,@ 符号表示矩阵乘法(也称为点积运算),遵循线性代数中的矩阵乘法规则。当二维数组与一维数组使用 @ 相乘时,会根据它们的形状触发不同的计算逻辑:

核心规则

  • 二维数组(形状为 (m, n))与一维数组(形状为 (n,))相乘时:
    • 一维数组会被视为列向量(形状为 (n, 1)
    • 结果为一个一维数组(形状为 (m,)),即矩阵与列向量的乘积
  • 若一维数组形状为 (m,),需先将其视为行向量(形状为 (1, m)),才能与 (m, n) 的二维数组相乘,结果为形状 (1, n) 的数组(可通过 .flatten() 转为一维)

示例代码

import numpy as np# 创建一个 2×3 的二维数组(矩阵)
arr_2d = np.array([[1, 2, 3],[4, 5, 6]])  # 形状:(2, 3)# 1. 一维数组长度与二维数组的列数相同(3)
vec_col = np.array([10, 20, 30])  # 形状:(3,),视为列向量 (3,1)
result1 = arr_2d @ vec_col
print("情况1:二维数组 @ 列向量(长度=列数)")
print(f"结果形状:{result1.shape}")  # 输出:(2,)
print(f"结果值:{result1}")          # 输出:[140 320]
# 计算逻辑:
# 第一行:1×10 + 2×20 + 3×30 = 140
# 第二行:4×10 + 5×20 + 6×30 = 320# 2. 一维数组长度与二维数组的行数相同(2)
vec_row = np.array([10, 20])  # 形状:(2,),需视为行向量 (1,2)
# 先将一维数组转为行向量(通过 reshape(1, 2))
result2 = vec_row.reshape(1, 2) @ arr_2d
print("\n情况2:行向量 @ 二维数组(长度=行数)")
print(f"结果形状:{result2.shape}")  # 输出:(1, 3)
print(f"结果值:{result2}")          # 输出:[[90 120 150]]
print(f"转为一维:{result2.flatten()}")  # 输出:[90 120 150]
# 计算逻辑:
# 第一列:10×1 + 20×4 = 90
# 第二列:10×2 + 20×5 = 120
# 第三列:10×3 + 20×6 = 150
 

关键区别

  • * 运算符:执行对应元素相乘(依赖广播机制)
  • @ 运算符:执行矩阵乘法(遵循线性代数的点积规则)
 
使用时需根据具体需求选择:元素级运算用 *,线性代数中的矩阵 - 向量乘法用 @

 

http://www.gsyq.cn/news/35749.html

相关文章:

  • 线性代数 SVD | 导数 - 详解
  • [MySQL] MySQL技术大全:开发、优化与运维实战
  • 2025年10月超声波清洗机厂家推荐榜:五强对比评测与选型指南
  • 2025年10月网上兼职赚钱正规平台推荐:市场报告与解决方案榜
  • 2025年10月学生平板品牌推荐榜:读书郎领衔五强对比评测
  • 2025年共板法兰机生产厂家权威推荐榜单:风管生产线/螺旋风管机/风管接料平台源头厂家精选
  • 2025年10月学生平板品牌推荐:投入研发榜对比教研深度
  • 2025年10月智能学习机品牌对比:新课标同步与护眼大屏选购指南
  • 2025年茅台酒回收服务权威推荐榜单:生肖茅台酒回收/年份茅台酒回收/回收老酒服务精选
  • 2025 江苏省大学生程序设计大赛 2025 广东省大学生程序设计竞赛题解
  • 身处微观之中,需要跳出来看宏观才能知道接下来往哪走
  • 2025年10月污水环保设备厂家推荐榜:区域服务力与运维成本对比
  • 这道题到底难不难???
  • 2025年10月办公家具公司推荐榜:五强横评与采购参考
  • 2025年10月北京律师推荐评测榜:十强排名与口碑对比全攻略
  • fcitx-config-qt 未被找到。该软件包名称通常为 fcitx5-configtool。现在将打开配置目录就是您正在 GUI 下运行 Fcitx,但
  • list_a.append(list_b)要特别小心list_b后续会不会发生元素级别的赋值
  • 【第五章:计算机视觉-项目实战之生成对抗网络实战】1.对抗生成网络原理-(1)对抗生成网络算法基础知识:基本思想、GAN的根本架构、应用场景、标注格式
  • vue3+ts+vant4开发,配置自动引入组件,不再使用import引入
  • Python引入模块 _ 别人写的,拿来吧你
  • 清理祖传 AK 不怕炸锅:基于 UModel 的云监控 2.0 身份凭证观测实践
  • 背包问题千千结:遍历顺序、内外循环,我们该如何思考?
  • 2025年GEO搜索企业权威推荐榜单:GEO广告/GEO排名/大模型GEO源头企业精选
  • 2025年10月遗产继承律师推荐榜:五强对比与专业评测
  • Python 基本语法
  • 第6章:工作流 (Workflow):编排复杂的业务逻辑 - 教程
  • 刚刚 Cursor2.0炸裂发布!这3大亮点必学
  • AT_arc195_d [ARC195D] Swap and Erase
  • 2025年10月大型挖掘机品牌实力榜:外资在华累计销量与口碑数据公开
  • 2025年10月小型挖掘机品牌推荐榜:五强评测对比解析