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

Python不使用numpy实现字符串列表转换为分类整数的方法

字符串列表转分类整数的无NumPy实现方案

你可以通过原生Python的字典映射实现相同效果,性能和兼容性都更好,不需要导入任何第三方库:

实现代码

ipt = ['a', 'a', 'c', 'a', 'a', 'a', 'd', 'c', 'd', 'd', 'd', 'd', 'c', 'd', 'd', 'd', 'd', 'c', 'd', 'd', 'd', 'd', 'c', 'b', 'b', 'b', 'd', 'b', 'b', 'b']

# 第一步:获取排序后的唯一值列表,和NumPy unique的默认排序逻辑一致
unique_values = sorted(set(ipt))
# 第二步:构建元素到整数的映射字典
value_map = {val: idx for idx, val in enumerate(unique_values)}
# 第三步:遍历原列表完成转换
result = [value_map[item] for item in ipt]

执行后result的输出完全符合你给出的预期结果:
[0, 0, 2, 0, 0, 0, 3, 2, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 3, 3, 3, 3, 2, 1, 1, 1, 3, 1, 1, 1]

补充简易方案(仅适合小数据量)

如果原列表数据量很小,也可以直接用列表的index方法简化写法,不需要单独构建映射字典:

unique_values = sorted(set(ipt))
result = [unique_values.index(item) for item in ipt]

该方案每次匹配都需要遍历唯一值列表,数据量越大性能损耗越高,仅推荐小数据场景使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:15:10