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

如何深度扁平化包含嵌套结构的杂乱Python数组/列表?

扁平化混合嵌套的列表/NumPy数组

对于这种混合了列表、NumPy数组和空容器的不规则嵌套结构,NumPy自带的flatten()、ravel()这类方法无法直接处理(它们只会展开规整的多维数组,不会递归解析嵌套的子数组/列表),必须通过遍历+递归的方式处理,下面是一个实用的实现:

import numpy as np

def flatten_nested(container):
    flattened = []
    for elem in container:
        # 判定当前元素是否是需要进一步展开的容器
        if isinstance(elem, (np.ndarray, list)):
            # 递归展开子容器,并将结果合并到列表中
            flattened.extend(flatten_nested(elem))
        else:
            # 是单一数值则直接加入结果列表
            flattened.append(elem)
    return np.array(flattened)

测试示例

用你提供的输入测试:

a = np.array([[1,2,3],
              [],
              [np.array([1,2,3])],
              [np.array([1,2,[]])]])

result = flatten_nested(a)
print(result)
# 输出:array([1, 2, 3, 1, 2, 3, 1, 2])

这个函数会自动跳过所有空的列表/数组,只收集所有单一数值元素,最后转换成一维NumPy数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 19:53:12