如何将嵌套列表组成的tuple转换为不丢失维度的numpy数组
嵌套列表组成的tuple转numpy数组(保留原有维度)的解决方案
根据给出的示例,分两种场景处理:
- 场景1:tuple内嵌套列表的维度不规则
你给出的示例就属于这种情况,两个子列表的形状分别为(2,2)和(1,2),无法生成元素类型统一的标准numpy多维数组,需要用object类型数组保留原有维度,代码如下:
import numpy as np # 输入的tuple input_tuple = ([[3,4],[3,4]], [[4,5]]) # 先将每个子嵌套列表转为numpy数组,再整体封装为object类型数组 result = np.array([np.array(sub_list) for sub_list in input_tuple], dtype=object)
输出结果和你期望的完全匹配:
[[[3 4] [3 4]] [[4 5]]]
- 场景2:tuple内所有嵌套列表的维度完全统一
如果所有子列表的形状一致,不需要额外处理,直接调用np.array()即可自动保留全部维度:
import numpy as np # 示例:两个子列表均为2行2列结构 input_tuple = ([[3,4],[3,4]], [[4,5],[6,7]]) result = np.array(input_tuple) # 输出形状为(2, 2, 2)的三维标准numpy数组
内容的提问来源于stack exchange,提问作者Alex Dob
相关产品推荐
相关产品推荐

