Skip to main content
 首页 » 编程设计

python之从不等形状的一维数组构造二维 numpy 数组 | NumPy 的

2025年05月04日13zfyouxi

在 python 中有三个不同形状的一维数组(如下所示)

a0 = np.array([5,6,7,8,9]) 
a1 = np.array([1,2,3,4]) 
a2 = np.array([11,12]) 

我假设数组 a0 对应于索引 i=0,a1 对应于索引 i=1 和 a2 对应于 i=2。有了这些假设,我想构建一个新的二维数组,其中行将对应于数组的索引 (i=0,1,2),列将是数组的条目 a0, a1, a2.

在我在这里给出的示例中,我希望二维数组看起来像

result = np.array([ [0,5], [0,6], [0,7], [0,8], [0,9], [1,1], [1,2],\ 
           [1,3], [1,4], [2,11], [2,12]  ])  

如果能得到有关如何实现此目标的答案,我将不胜感激。在我处理的实际问题中,我正在处理三个以上的一维数组。所以,如果答案考虑到这一点,那就太好了。

请您参考如下方法:

执行此操作的一种方法是简单的列表理解:

result = np.array([[i, arr_v] for i, arr in enumerate([a0, a1, a2])  
                             for arr_v in arr]) 
 
>>> result 
array([[ 0,  5], 
       [ 0,  6], 
       [ 0,  7], 
       [ 0,  8], 
       [ 0,  9], 
       [ 1,  1], 
       [ 1,  2], 
       [ 1,  3], 
       [ 1,  4], 
       [ 2, 11], 
       [ 2, 12]]) 

解决您对将其扩展到更多数组的担忧,您可以通过简单地创建数组名称列表并将该列表用作 enumerate 的参数来轻松添加任意数量的数组:

.... for i, arr in enumerate(my_list_of_arrays) ...