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

如何批量将NumPy数组中的数字替换为对应名称?

首先得提个醒:你用的{'Nikolas', 'Kate', 'George'}是集合,集合是无序的,没法保证和[0,1,2]的对应关系固定,运行多次可能得到不同结果,所以先把名称改成有序结构,比如列表或者直接建字典映射。

方法一:用字典构建映射(最稳妥)

先把数字和名称的对应关系做成字典,然后用NumPy的向量化操作批量替换:

import numpy as np

# 构建稳定的数字->名称映射字典
num_to_name = {0: 'Nikolas', 1: 'Kate', 2: 'George'}

# 原始数组
np_array_1 = np.array([1, 2])
np_array_2 = np.array([0])

# 用np.vectorize实现批量替换
replace_func = np.vectorize(lambda x: num_to_name[x])

np_array_1 = replace_func(np_array_1)
np_array_2 = replace_func(np_array_2)

print(np_array_1)  # 输出 ['Kate' 'George']
print(np_array_2)  # 输出 ['Nikolas']

方法二:用有序列表做索引(适合数字连续从0开始的场景)

如果你的数字刚好是从0开始的连续整数,也可以把名称做成有序列表,直接用数组索引完成替换:

import numpy as np

# 用有序列表替代集合,保证对应关系稳定
name_list = ['Nikolas', 'Kate', 'George']

np_array_1 = np.array([1, 2])
np_array_2 = np.array([0])

# 直接用数组作为索引,一步完成替换
np_array_1 = name_list[np_array_1]
np_array_2 = name_list[np_array_2]

print(np_array_1)  # 输出 ['Kate' 'George']
print(np_array_2)  # 输出 ['Nikolas']

批量处理多个数组

如果需要处理的数组数量多,可以把数组放到列表里循环处理:

import numpy as np

name_list = ['Nikolas', 'Kate', 'George']
# 把所有要处理的数组放到一个列表里
arrays_to_process = [np.array([1, 2]), np.array([0]), np.array([0,1,2])]

# 批量替换
processed_arrays = [name_list[arr] for arr in arrays_to_process]

# 输出结果
for arr in processed_arrays:
    print(arr)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 05:20:51