如何合并不同维度的numpy数组以得到指定嵌套结构?
用Numpy实现指定嵌套结构的数组组合
要实现你需要的嵌套结构,核心是利用Numpy的object类型数组——因为普通Numpy数组要求所有元素维度一致,而你的需求是把不同维度的数组(一维的a和二维的b)作为独立元素嵌套在一起。
具体实现代码
import numpy as np # 定义Numpy数组 a = np.array([3, 4]) b = np.array([[6, 5], [2, 1]]) # 创建object类型数组,将a和b作为独立元素放入 result = np.array([a, b], dtype=object)
验证结果
打印result会得到:
array([array([3, 4]), array([[6, 5], [2, 1]])], dtype=object)
如果直接用np.array([a, b])不指定dtype=object,Numpy会自动将b展开,得到你不需要的[[3,4],[6,5],[2,1]]。这是因为它会默认尝试将所有元素调整为相同维度的数组;而指定dtype=object后,Numpy会把每个数组作为独立对象存储,完整保留原有的嵌套结构。
内容的提问来源于stack exchange,提问作者Viktoria Voucheva
相关产品推荐
相关产品推荐

