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

如何将嵌套列表转换为元素为列表的一维numpy object数组

解决方案

你可以通过先创建指定长度的object类型一维空数组,再将嵌套列表赋值给数组的方式,避开numpy自动推断高维数组的逻辑,实现需求,示例代码如下:

import numpy as np

def nested_list_to_arr(nested_list):
    # 初始化长度等于外层列表长度的object类型一维空数组
    res_arr = np.empty(len(nested_list), dtype=object)
    # 直接将嵌套列表整体赋值给数组,每个位置对应一个子列表
    res_arr[:] = nested_list
    return res_arr

效果验证

  1. 子列表长度不一致场景:
sample_list1 = [["hello", "world"], ["foo"], ["alpha", "beta", "gamma"], []]
arr1 = nested_list_to_arr(sample_list1)
print(arr1)
# 输出:array([list(['hello', 'world']), list(['foo']), list(['alpha', 'beta', 'gamma']), list([])], dtype=object)
print(arr1.shape)
# 输出:(4,)
  1. 子列表长度一致场景:
sample_list2 = [["hello"], ["world"], ["foo"], ["bar"]]
arr2 = nested_list_to_arr(sample_list2)
print(arr2)
# 输出:array([list(['hello']), list(['world']), list(['foo']), list(['bar'])], dtype=object)
print(arr2.shape)
# 输出:(4,)

补充说明

直接使用np.asarray或者np.array时,哪怕手动指定dtype=object,只要所有子列表长度一致,numpy都会自动将其堆叠为高维数组,上述方案可以完全规避这个问题,不管子列表长度是否统一,都能输出符合要求的一维数组。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:24:01