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

如何使用NumPy将矩阵中的0和1替换为指定数组?

NumPy数组元素替换为多值数组的实现方案

针对你提出的将形状为(4800, 4, 4)的NumPy数组中每个0替换为[1, 1, 2]、每个1替换为[5, 5, 9]的需求,以下是两种高效的实现方法:

方法一:索引映射法(最简洁高效)

利用数组元素的取值(0和1)作为索引,直接从预定义的映射数组中取值,适合仅包含少量离散值的场景:

import numpy as np

# 定义映射关系:索引0对应0的替换值,索引1对应1的替换值
mapping = np.array([[1, 1, 2], [5, 5, 9]])
# 直接通过原数组元素索引映射数组,自动广播得到目标形状(4800, 4, 4, 3)
result = mapping[x]

方法二:np.where条件替换法

通过条件判断逐个元素替换,逻辑直观,适合需要更复杂条件判断的场景:

import numpy as np

zero_replacement = np.array([1, 1, 2])
one_replacement = np.array([5, 5, 9])

# 扩展原数组维度至(4800, 4, 4, 1),与替换值的维度(3,)实现广播匹配
result = np.where(x[..., np.newaxis] == 0, zero_replacement, one_replacement)

两种方法最终都会生成形状为(4800, 4, 4, 3)的数组,完全符合你给出的示例输出格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 18:55:35