如何在 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
否则它将全部展平为线性阵列。
尝试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)
我有一个 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
否则它将全部展平为线性阵列。
尝试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)