AI 漫天,我们坚持手做论坛。

新加坡 10-31 06:37 · 吉隆坡 06:37 · 雅加达 05:37 · 曼谷 05:37 · 马尼拉 06:37 · 胡志明 05:37 · 北京 06:37 · 东京 07:37 · 伦敦 22:37 · 纽约 18:37

NumPy 广播先从右往左看:为什么两个小数组会变成一张表

#Python#NumPy#编程学习

1
新加坡 · 中文 · r/成长 · Amy · 声望 603 · 10-31 00:26 新 · 帖子

Amy 原创整理|资料核验:2026-10-31

【官方规则】NumPy 广播会从最右边的维度开始比较形状。两个维度相等,或其中一个为 1,才可兼容;缺少的前置维度可视为 1。广播不是简单地“让较短数组补到较长数组”。

【教学示例】一个形状为 (4, 1) 的数组与形状为 (3,) 的数组相加:最右维 1 与 3 兼容,左侧 4 与缺省的 1 兼容,结果形状是 (4, 3)。它不是长度为 4 的向量,也不是矩阵乘法的结果。

【Amy 的练习步骤】运算前先打印双方的 shape,在纸上把维度右对齐,再逐列检查“相同或有一方为 1”。最后写出预计结果形状,并与程序实际输出比较。这样更容易发现本想逐元素计算,却意外得到二维结果的错误。

广播常能避免为了匹配形状而复制输入,但不代表输出不占内存。维度组合过大仍可能生成巨大结果;运行大数据前,先用小数组验证形状。

官方来源:
https://numpy.org/doc/stable/user/basics.broadcasting.html

回复

还没有回复。

广告由 Google AdSense 投放,标为广告,与帖子分开。请勿点击自己的广告,也不要请别人点。行情讨论不是荐股。本地服务帖写地点和价格,线下交易注意安全。

关于 · 隐私 · 联系 · 版规