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

如何将CSV文件中的numpy数组格式字符串转换为有效numpy数组

解决CSV存储的numpy数组格式字符串还原问题

问题说明

你存储的字符串是numpy数组列表序列化后的结果,由于包含array标识无法直接通过常规JSON或字面量解析函数转换。

方法1:安全eval转换(代码更简洁)

适合确认字符串来源安全、没有注入风险的场景,步骤如下:

  • 导入依赖库
import numpy as np
  • 处理原始字符串并转换,假设你读取到的原始字符串变量为raw_str:
# 1. 去除字符串外层多余的双引号
clean_str = raw_str.strip('"')
# 2. 限制eval的命名空间,仅允许识别array和基础类型,避免注入风险
result = eval(clean_str, {'array': np.array, '__builtins__': None})

转换完成后result就是包含多个numpy数组的列表,如果你需要合并为单个数组,可根据子数组长度选择处理方式:

  • 若所有子数组长度一致,直接用np.array(result)得到标准多维数组
  • 若子数组长度不一致(比如示例中最后一个数组长度为1),np.array(result)会得到object类型的数组,也可自行补全长度后再转换

方法2:纯字符串预处理+字面量解析(无需eval,更安全)

适合无法确认字符串来源的场景,全程不执行动态代码:

  • 导入依赖库
import ast
import numpy as np
  • 执行转换:
# 1. 去除外层双引号
clean_str = raw_str.strip('"')
# 2. 替换array标识,转成标准Python列表格式字符串
list_str = clean_str.replace('array(', '').replace('])', ']')
# 3. 转成Python嵌套列表
py_list = ast.literal_eval(list_str)
# 4. 转成numpy数组
result = np.array([np.array(item) for item in py_list], dtype=object)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:48:03