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

网络软文案例seo整站优化吧

网络软文案例,seo整站优化吧,wordpress改变访问目录,做淘宝代理哪个网站好numpy学习笔记9:numpy的广播机制详细解释 NumPy 的 广播机制(Broadcasting) 是处理不同形状数组进行逐元素运算的核心规则。它允许在不显式复制数据的情况下,让不同形状的数组进行数学运算,大幅简化代码并提升性能。以…

numpy学习笔记9:numpy的广播机制详细解释

NumPy 的 广播机制(Broadcasting) 是处理不同形状数组进行逐元素运算的核心规则。它允许在不显式复制数据的情况下,让不同形状的数组进行数学运算,大幅简化代码并提升性能。以下是广播机制的详细解释:


1. 广播的核心规则

广播遵循 从右向左(从最低维度开始)逐维度匹配 的原则:

  1. 维度对齐:将数组的维度从右向左对齐。

  2. 维度兼容性判断

    • 两个数组在某一维度上相等,

    • 其中一个数组在该维度的大小为 1

  3. 扩展缺失维度:在维度不足的数组左侧补 1,直到维度数相同。

  4. 扩展大小为1的维度:将维度大小为 1 的数组沿该维度复制到与另一数组相同的大小。

若以上条件不满足,则触发 ValueError,表示无法广播。


2. 广播示例

示例1:标量与数组的运算
import numpy as npa = np.array([1, 2, 3])  # 形状 (3,)
b = 5                     # 标量(视为形状 ())# 广播后:b 扩展为形状 (3,)
result = a + b            # [1+5, 2+5, 3+5] → [6,7,8]
示例2:一维数组与二维数组相加
a = np.array([[1], [2], [3]])  # 形状 (3,1)
b = np.array([10, 20, 30])     # 形状 (3,)# 步骤:
# 1. 对齐维度:a(3,1) vs b(3,) → 扩展 b 为 (1,3)
# 2. 扩展维度:a(3,1) 和 b(1,3)
# 3. 复制数据:
#    a → [[1,1,1], [2,2,2], [3,3,3]]
#    b → [[10,20,30], [10,20,30], [10,20,30]]
result = a + b  # 形状 (3,3)

输出:

[[11 21 31][12 22 32][13 23 33]]
示例3:三维数组的广播
a = np.ones((2, 1, 3))  # 形状 (2,1,3)
b = np.ones((4, 3))     # 形状 (4,3)# 步骤:
# 1. 对齐维度:a(2,1,3) vs b(  4,3) → 补全 b 为 (1,4,3)
# 2. 扩展维度:
#    a → (2,4,3)(沿第1维复制4次)
#    b → (2,4,3)(沿第0维复制2次)
result = a + b  # 形状 (2,4,3)

3. 广播的数学本质

广播的底层逻辑是 虚拟扩展数组,而非实际复制数据,因此内存高效。例如:

a = np.ones((3, 1))  # 形状 (3,1)
b = np.ones((1, 4))  # 形状 (1,4)# 广播后:
# a → (3,4)(每行重复4次)
# b → (3,4)(每列重复3次)
result = a + b  # 形状 (3,4)

4. 广播规则的应用场景

(1) 归一化数据
data = np.random.rand(100, 3)  # 100个样本,3个特征
mean = data.mean(axis=0)       # 形状 (3,)
std = data.std(axis=0)         # 形状 (3,)
normalized = (data - mean) / std  # 广播:mean/std 扩展为 (100,3)
(2) 图像处理
image = np.random.rand(256, 256, 3)  # 彩色图像(高度, 宽度, 通道)
brightness = np.array([0.1, 0.2, 0.05])  # 各通道亮度调整
brightened = image + brightness  # 广播至 (256,256,3)
(3) 外积计算
a = np.array([1, 2, 3])  # 形状 (3,)
b = np.array([4, 5])      # 形状 (2,)
outer = a[:, None] * b    # 广播为 (3,1) * (2,) → (3,2)

结果:

[[4, 5],[8,10],[12,15]]

5. 广播的限制与错误

不兼容示例
a = np.ones((3, 4))
b = np.ones((2, 5))  # 形状 (2,5)try:a + b
except ValueError as e:print(e)  # 报错:operands could not be broadcast together with shapes (3,4) (2,5)
调试技巧
  • 检查数组形状:a.shape 和 b.shape

  • 手动扩展维度:用 reshape 或 np.newaxis 调整形状:

    a = np.array([1, 2, 3])  # 形状 (3,)
    b = np.array([[4], [5]]) # 形状 (2,1)
    result = a + b  # 广播为 (2,3)

6. 广播的性能优化

  • 内存效率:广播通过虚拟扩展避免实际复制数据,适合处理大规模数组。

  • 向量化操作:结合广播的运算可完全避免 Python 循环。


总结

  • 核心规则:形状从右向左对齐,维度大小为1或相等。

  • 应用场景:标准化、外积、图像处理等。

  • 优势:代码简洁、内存高效、运算快速。

通过广播机制,NumPy 能够优雅地处理不同形状数组的运算,是科学计算中不可或缺的特性!

http://www.dtcms.com/wzjs/196776.html

相关文章:

  • 做网站的需求百度入口网页版
  • 深圳设计馆广州seo推荐
  • 网站建设大庆全网优化哪家好
  • ai可以做网站吗如何在百度上添加自己的店铺
  • 广州外贸网站建设 open网站的优化公司
  • wordpress可爱的主题老铁seo外链工具
  • 欧米茄官网网站自己创建网页
  • 网站关键词优化骗局市场推广计划怎么写
  • 西安做义工网站seo视频教学网站
  • 怎么建设网站商城做一个网站需要多少钱
  • 深圳建一个网站要多少钱免费网站推广软件
  • wordpress 百度云图安装seo排名点击器曝光行者seo
  • 做网站编辑是不是也要做推广百度云手机app下载
  • 湛江人怎么样神马seo服务
  • 网站开发是什么意思网上网络推广
  • wordpress 页面布局深圳网站优化软件
  • wordpress企业建站流程南昌seo管理
  • 如何做网站左侧导航条竞价外包代运营公司
  • wordpress下载站亚马逊关键词快速优化
  • 做电影采集网站需要多大vps最新国内新闻事件今天
  • 搜索别人的网站是带logo的请问怎么做的免费的个人网站怎么做
  • 网站的做网站公司网站友情链接怎么添加
  • 网站建设 上海网站建成都seo达人
  • 网站建设公司友情链接新媒体营销推广公司
  • 山西省网站制作cps推广平台
  • 网站建设代理平台南京网站制作
  • 什么是营销型的网站广告推广怎么做
  • 网站建设的价值是什么意思汕头seo快速排名
  • 手机端网站ui做多少像素怎么登录百度app
  • 网站栏目结构图软文营销方法有哪些