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

如何用map或lambda函数将NumPy数组指定列字符串转元组

解决方法

你可以结合ast.literal_eval(安全解析Python字面量)和map+lambda实现需求,完整代码如下:

import numpy as np
import ast

# 初始化object类型的numpy数组,才能存储混合类型元素
x = np.array([[123, '()', 34], [5, '(3,4,5)', 100]], dtype=object)

# 处理指定列(此处为索引1的第二列)
x[:, 1] = list(map(lambda s: ast.literal_eval(s), x[:, 1]))

# 验证结果
print(x)
# 输出:[[123 () 34]
#        [5 (3, 4, 5) 100]]

注意事项

  • 必须指定数组dtype=object,否则numpy会自动将所有元素统一转为字符串类型,无法存储转换后的tuple
  • 优先用ast.literal_eval而非原生eval,前者仅会解析Python字面量结构,不会执行恶意代码,安全性更高
  • map返回的是迭代器,赋值给numpy数组列时需要转为list,否则会报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:24:01