如何在Python(NumPy)中将多个数组合并为嵌套数组?
在NumPy中合并多个(I,J)数组为(I,J,N)数组的方法
在NumPy里,numpy.stack() 是实现这个需求最直接的函数,只需指定合并的维度为第三个轴(axis=2)即可。
示例1:合并两个数组
import numpy as np arr1 = np.array([[2,3,4], [3,4,5]]) arr2 = np.array([[3,4,2], [4,3,5]]) arr_final = np.stack([arr1, arr2], axis=2) print(arr_final)
输出结果:
[[[2 3] [3 4] [4 2]] [[3 4] [4 3] [5 5]]]
示例2:合并三个数组
arr1 = np.array([[0,0,0], [0,0,0]]) arr2 = np.array([[1,1,1], [1,1,1]]) arr3 = np.array([[2,2,2], [2,2,2]]) arr_final = np.stack([arr1, arr2, arr3], axis=2) print(arr_final)
输出结果:
[[[0 1 2] [0 1 2] [0 1 2]] [[0 1 2] [0 1 2] [0 1 2]]]
替代方案:concatenate + 维度扩展
如果不想用stack,也可以先给每个数组扩展一个新维度,再用concatenate合并:
arr_final = np.concatenate([arr1[:, :, np.newaxis], arr2[:, :, np.newaxis]], axis=2)
不过这种写法比stack繁琐,更推荐直接使用stack。
内容的提问来源于stack exchange,提问作者balintccc
相关产品推荐
相关产品推荐

