2-7 Python 中的广播

本文深入探讨了Python中NumPy库的广播机制,通过一个具体的营养成分数据计算案例,详细解释了如何利用广播机制进行高效的数据处理。特别是对于矩阵运算中维度不匹配的问题,广播机制提供了解决方案,使数据计算更为灵活和高效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python 中的广播( Broadcasting in Python

如下,列举四种食物中的营养成分含量表:

 

现在想计算不同食物中不同营养成分中的卡路里百分比,在python中的实现:

import numpy as np

A = np.array([[56.0,0.0,4.4,68.0],
              [1.2,104.0,52.0,8.0],
              [1.8,135.0,99.0,0.9]])

cal = A.sum(axis=0)
percentage = 100 * A / cal.reshape(1,4)

注释:

axis表示将要进行的计算是沿着哪个轴进行的,在numpy中0轴表示列,1轴表示行。

A/cal.reshape(1,4)使用了numpy中的广播集中制,使用3*4的矩阵除以一个1*4的矩阵,因为广播机制会将其从1*4扩展为3*4,再逐像素相除。

cal在此已经是1*4,使用reshape的原因,是如果在计算过程中我们不确定变量的维度时,采用reshape可以确保得到我们想要的类型,并且这个操作并不耗时。

python中的broadcasting可以总结如下图:

转载于:https://www.cnblogs.com/xiaojianliu/articles/9485235.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值