繁体   English   中英

如何在Python中将2D矩阵添加到另一个3D矩阵?

[英]How to add a 2D matrix to another 3D matrix in python?

我有一个3D矩阵a ,像这样:

a=np.array([[[1,2],[2,3]],[[3,4],[4,5]]])
[
 [[1 2],[2 3]]
 [[3 4],[4 5]]
]
a.shape
(2, 2, 2)

现在,我想向此数组添加另一个元素,例如[[5,6],[6,7]] 因此,新数组将是:

[
 [[1, 2],[2, 3]]
 [[3, 4],[4, 5]]
 [[5, 6],[6, 7]]
]
a.shape
(3, 2, 2)

做这个的最好方式是什么? (我正在处理大型数据集,所以我需要最好的方法)

将第二个数组扩展为3D后,使用np.vstack垂直堆叠,方法是使用None/np.newaxis将新轴添加为第一轴,如下所示-

np.vstack((a,b[None]))

样品运行-

In [403]: a
Out[403]: 
array([[[1, 2],
        [2, 3]],

       [[3, 4],
        [4, 5]]])

In [404]: b
Out[404]: 
array([[5, 6],
       [6, 7]])

In [405]: np.vstack((a,b[None]))
Out[405]: 
array([[[1, 2],
        [2, 3]],

       [[3, 4],
        [4, 5]],

       [[5, 6],
        [6, 7]]])

您可以使用np.append追加到矩阵:

a = np.array([[[1,2],[2,3]],[[3,4],[4,5]]])
a = np.append(a, [[[5,6],[6,7]]], axis=0)

请注意,我必须在第二部分周围添加一组额外的括号,以确保尺寸正确。 另外,必须使用axis ,否则所有axis将被展平为线性阵列。

尝试numpy.append

import numpy as np
a=np.array([[[1,2],[2,3]],[[3,4],[4,5]]])
b=np.array([[3,4],[4,5]])
np.append(a,[b[:,:]],axis=0)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM