You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Numpy快速合并两个同尺寸多维数组仅替换非零元素

Numpy按条件合并同维度数组的高效实现

你可以直接使用numpy内置的np.where函数实现需求,这是完全矢量化的底层实现,没有Python层面的循环,运算速度最快,适配任意维度的同尺寸数组:

import numpy as np

# 示例数组初始化,若你已经是numpy数组可跳过转换步骤
a = np.array([[[1, 2, 3, 4], [3, 3, 3, 3], [4, 4, 4, 4]]])
b = np.array([[[0, 0, 4, 0], [0, 0, 0, 0], [0, 1, 0, 1]]])

# 核心合并逻辑:b对应位置不为0则取b,否则取a
c = np.where(b != 0, b, a)

运行后得到的c完全符合预期输出:

array([[[1, 2, 4, 4],
        [3, 3, 3, 3],
        [4, 1, 4, 1]]])

如果你想要降低内存开销,也可以选择直接在数组副本上赋值,性能和np.where基本持平:

c = a.copy()
c[b != 0] = b[b != 0]

内容的提问来源于stack exchange,提问作者Senses

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 12:54:03