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

将元素为列表的object类型numpy数组转换为ndarray遇到的问题

Numpy Object类型数组转标准数值数组方案

你之前的代码运行失败的核心原因是:传入np.asarray的参数本身已经是dtype=object的Numpy数组,Numpy不会自动解析数组内部存储的Python列表对象,因此无法直接转换为数值类型的标准多维数组。

以下是两种可直接使用的实现方案:

方法1:先转Python原生列表再转换

该方法兼容性最强,只要所有内部子列表长度一致就能得到预期结果:

import numpy as np

# 你的原始object类型数组
obj_arr = np.array([list([1, 1, 1]), list([1, 1, 1])], dtype=object)
# 先转成Python原生嵌套列表,再生成标准Numpy数组
res_arr = np.array(obj_arr.tolist(), dtype=np.float32)

执行后输出结果:

array([[1., 1., 1.],
       [1., 1., 1.]], dtype=float32)

方法2:使用堆叠函数直接转换

如果确认所有内部子列表长度一致,也可以用np.vstack直接堆叠生成目标数组:

res_arr = np.vstack(obj_arr).astype(np.float32)

注意:如果内部子列表长度不一致,两种方法都无法生成标准二维数值数组,需要先对齐子列表长度再执行转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:48:02