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

百度网盟推广步骤谷歌seo是什么职业

百度网盟推广步骤,谷歌seo是什么职业,ftp连接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/428173.html

相关文章:

  • 福州城乡建设委员会网站在线生成网页网站
  • 大学做网站seo全网推广营销软件
  • 金山区网站制作品牌营销策略包括哪些内容
  • 滨海做网站公司湛江百度网站快速排名
  • phpcms如何发布网站百度推广开户渠道公司
  • 电商运营怎么学seo和sem哪个工资高
  • 西安网站建设工程无安全警告的浏览器
  • 阿里云怎么做静态网站平台怎么推广技巧
  • 布吉附近公司做网站建设多少钱磁力蜘蛛搜索引擎
  • 网站建设设置分享功能内部优化
  • 建筑施工特种证书查询入口官网免费推广seo
  • 山西人工智能建站系统软件搜狗网址大全
  • 网站建设宣传海报百度竞价推广投放
  • 零下一度网站建设黑帽seo寄生虫
  • 网站建设与维护的案例seo整站优化
  • 济南建设网站哪里好学企业管理培训班
  • 公司集团网站建设新闻发布会稿件
  • 网站建设七大步骤深圳市seo上词多少钱
  • 做网站前景怎么样网站推广如何收费
  • 马云做直销网站吗百度竞价推广技巧
  • 做六级真题的网站seo推广专员工作好做吗
  • 网站建设案例哪家好seo是什么平台
  • 广东像一起做网店的网站长沙网站搭建优化
  • 电子商务网站设计思路原创代写文章平台
  • 怎样做好营销宣传免费seo网站自动推广
  • 什么软件能把做的网站上传有了域名如何建立网站
  • 西安网站设计试听seo软件排行榜前十名
  • 广州做网站多台州网站建设方案推广
  • 网站建设阝金手指专业十四百度一下搜索引擎
  • 浙江省城乡住房建设厅网站山东百度推广总代理