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

为何将int类型列表的列表转为np.array()时返回结果不同?

numpy.array转换嵌套列表结果差异的核心原因

核心关键点是嵌套列表中所有子列表的长度是否完全一致:

  • 当所有子列表长度相同时,numpy会将其转换为规整的二维numpy.ndarray:

    import numpy as np
    list1 = [[1,2,3], [4,5,6], [7,8,9]]
    arr = np.array(list1)
    print(arr.shape)       # 输出 (3, 3)
    print(arr.dtype)       # 输出 int64
    print(type(arr[0]))    # 输出 <class 'numpy.ndarray'>
    
  • 当子列表长度不一致时,numpy无法构建规整的多维数组,会退化为存储Python列表的一维object类型数组:

    import numpy as np
    list1 = [[1,2], [3,4,5], [6]]
    arr = np.array(list1)
    print(arr.shape)       # 输出 (3,)
    print(arr.dtype)       # 输出 object
    print(type(arr[0]))    # 输出 <class 'list'>
    

简单来说,numpy对输入的嵌套结构有“规整性”要求,只有所有子元素的维度/长度统一时,才能生成对应维度的数组;否则会以object类型保存原始子列表,形成一维数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 06:42:02