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

如何将元素为字符串数组的numpy数组转换为嵌套结构的numpy数组?

Numpy字符串数组转三维数值数组优化方案

你当前使用的json.loads方案仅适配标准JSON格式的字符串,如果字符串包含Python特有字面量(比如单引号、True/False、None等)会解析失败,且map+列表推导的方式在数据量较大时性能一般,以下是两种更优实现:

方案1:高适配性实现(小数据量首选)

用ast.literal_eval替代json.loads,它是专门用来解析Python字面量的工具,安全性和适配性都更高,代码也更简洁:

import ast
import numpy as np

res = np.array([ast.literal_eval(s) for s in test])

输出直接为shape是(2,2,3)的数值数组,和预期完全一致。

方案2:高性能实现(大数据量首选)

如果你的test数组长度很大(上万条元素及以上),用numpy向量化函数替代Python层循环,性能提升非常明显:

import ast
import numpy as np

# 把解析函数转为numpy支持的向量化函数
parse_func = np.frompyfunc(ast.literal_eval, 1, 1)
# 解析后堆叠转换为指定类型的数值数组
res = np.stack(parse_func(test)).astype(np.int64)

这个方案避免了Python侧的遍历开销,数据量越大性能优势越突出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 01:15:05