合并不同维度的numpy数组

时间:2021-01-27 20:00:36

标签: python

我有一个形状为 (100,9,17,2) 的 numpy 数组。我需要将其转换为 (100,15,17,2) 在缺失的单元格中添加零。我创建了一个 zeros(100,6,17,2) 但我无法合并它们。你能帮我吗?

4 个答案:

答案 0 :(得分:0)

使用 numpy 的连接函数。

result = np.concatenate([input_array, np.zeros((100, 6, 17, 2), dtype=input_array.dtype)], axis=1)

axis 参数是您希望添加维度的参数。

答案 1 :(得分:0)

 import numpy as np
 a = np.array ([[1, 2], [2, 2]])
 b = np.array ([[1, 2], [2, 2], [1,2]])
 print (a.shape, b.shape)

输出:(2,2), (3,2)

现在,连接两个数组提及轴。

c = np.concatenate((a,b), axis=0)

output: array([[1, 2],
       [2, 2],
       [1, 2],
       [2, 2],
       [1, 2]])



 

答案 2 :(得分:0)

很简单,您使用参考形状创建一个包含零的数组:

c = np.zeros((100, 15, 17, 2))

然后在正确的元素中插入另一个数组:

c[:a.shape[0],b.shape[1]:,:a.shape[2],:a.shape[3]] = a

最后把它们加起来:

merged = b + c

答案 3 :(得分:0)

您可以使用 numpy.apply_along_axis()numpy.pad()

new_array = np.apply_along_axis(lambda x: np.pad(x,(0,6)), 1, input_array)
相关问题