numpy合并两个ndarry或多个

时间:2025-04-12 17:02:13

其实咱们常规认为的append()函数在numpy中达不到想要的效果的!!

import numpy as np

array_1 = np.random.random((5, 6, 7, 8))  # shape = (5,6,7,8)
array_2 = np.random.random((5, 6, 7, 8))  # shape = (5,6,7,8)

把列表展开,然后合并:

np.append(array_1, array_2)  # shape = (3360,)

将后一个array插入与前一个array-合并

# 以第一个维度合并
np.vstack((array_1, array_2))  # shape = (10,6,7,8) 以第一个维度合并
np.concatenate([array_1, array_2], axis=0)  # shape = (10,6,7,8) 与上述效果相同

# 以第二个维度合并
np.hstack((array_1, array_2))  # shape = (5,12,7,8) 以第二个维度合并
np.concatenate([array_1, array_2], axis=1)  # shape = (5,12,7,8) 与上述效果相同

# 以第三个维度合并
np.dstack((array_1, array_2))  # shape = (5,6,14,8) 以第三个维度合并
np.concatenate([array_1, array_2], axis=2)  # shape = (5,6,14,8) 与上述效果相同
# 以第n个维度合并:([array_1, array_2], axis=n)

将后一个array插入到前一个array-插入

# 插入新数据到新的维度:
np.stack((array_1, array_2), axis=3)  # shape = (5,6,7,2,8) 把新加的维度插入到axis上