如何用单行列表推导式展平含嵌套numpy数组的列表得到一维值列表
你写的推导式语法报错是因为嵌套循环的顺序写反了,列表推导式的多层循环顺序和常规逐行缩进写for循环的顺序完全一致,需要从最外层遍历对象写到最内层。
方案1:纯列表推导式实现(符合单行推导式需求)
你的结构完全固定,每个元素都是shape为(1,1)的numpy二维数组,正确写法如下:
# 替换your_list为你实际的列表变量名 result = [item for arr in your_list for sublist in arr for item in sublist]
如果确定每个数组内永远只有一个值,还可以简化为更直观的写法:
result = [arr[0][0] for arr in your_list]
方案2:numpy内置方法实现(效率更高、代码更简洁)
因为元素本身是numpy数组,直接用numpy的拼接+展平方法即可,无需手动写循环:
import numpy as np result = list(np.concatenate(your_list).flatten())
内容的提问来源于stack exchange,提问作者Sparky Parky
相关产品推荐
相关产品推荐

