Numpy 的广播机制
广播机制在numpy中居于非常重要的位置,也是numpy高效计算的秘密武器,有必要进行深入彻底的理解,简而言之,它的规则如下:
- 规则1:如果两个数组在维度上不一样,那么维度低的数组用1(1个或者多个)从左边开始填充。
- 规则2:如果维度数一样,在每个维度上的形状数不一样,那么该维度上的形状数为1的拉伸来与对方的形状数一样
- 规则3:如果彼此任何维度上的形状数不一致,并且不为1,则报错
例1

M的形状是(2,3)
a的形状是(3,)
根据规则1,先用“1”填充a最左边的维度,填充成(1,3)
然后再根据规则2,对同一维度但形状不同而形状是1的进行拉伸,
所以a广播变成了[[0,1,2],[0,1,2]],此时维度拉伸成了(2,3)
最后再相加。
例2

a.shape-->(3,1)
b.shape--->(3,)
首先b填充为(1,3)
然后a拉伸为(3,3)
b拉伸为(3,3)
附np.newaxis用法
np.newaxis的作用主要就是对数组进行升维,一般配合:
使用,而:
可以理解为'遍历第n层维度',然后'进入下一维度',np.newaxis
可理解为在遍历第n维前,对第n维整体再加一个维度,即在外面'套上'[...]
。
#####
愿你一寸一寸地攻城略地,一点一点地焕然一新
#####
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix