Numpy中的Boardcast机制

博主在使用numpy进行二维矩阵每行归一化时遇到问题,通过深入理解广播机制,发现是由于对reshape操作理解不准确。正确使用reshape(-1,1)确保了正确处理了维数和长度不一致。本文揭示了这个常见误区并提供了解决方案。
摘要由CSDN通过智能技术生成

二维方阵每行单独归一化,实现时没报错,但结果并不对,debug后发现原来是自己对numpy的boardcast理解有误,以下记录。

boardcast依次遵循三项原则:

1、如果两个数组维数不相等,维数较低的数组的shape会从左开始填充1,直到和高维数组的维数匹配

2、如果两个数组维数相同,但某些维度的长度不同,那么长度为1的维度会被扩展,和另一数组的同维度的长度匹配

3、如果两个数组维数相同,但有任一维度的长度不同且不为1,则报错

因此,在做每行单独归一化是,应加入reshape(-1, 1)

transmission /= transmission.sum(axis=-1).reshape(-1, 1)

transmission 是方阵

参考:

NumPy二元运算的broadcasting机制_Python中文社区-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值