寻求实现特定嵌套结构的NumPy数组堆叠解决方案
解决NumPy数组的特定堆叠需求
你的需求是将两个形状分别为(5,1)和(5,2)的数组,按对应行组合成包含两个子数组的嵌套结构。由于常规NumPy数组要求所有元素形状统一,直接用hstack或dstack无法实现,这里需要创建object类型的数组来存放不同形状的子数组,具体实现如下:
代码实现
import numpy as np # 初始化原数组 a1 = np.array([[0], [1], [2], [3], [4]]) b2 = np.array([[100, 101], [102, 103], [104, 105], [106, 107], [108, 109]]) # 创建形状为(5,2)的object类型数组 result = np.empty((a1.shape[0], 2), dtype=object) # 为数组的两列分别赋值 result[:, 0] = a1 result[:, 1] = b2 print(result)
输出结果
array([[array([0]), array([100, 101])], [array([1]), array([102, 103])], [array([2]), array([104, 105])], [array([3]), array([106, 107])], [array([4]), array([108, 109])]], dtype=object)
补充说明
hstack会在横向(axis=1)直接拼接数组,将a1和b2合并为(5,3)的一维行数组,不符合嵌套需求;dstack要求参与堆叠的数组在除最后一个维度外的所有维度形状一致,a1的形状是(5,1),b2是(5,2),第二个维度不匹配,因此无法使用。
内容的提问来源于stack exchange,提问作者fearless_fool
相关产品推荐
相关产品推荐

