在 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) ...
