Python 合并numpy矩阵以获得维数为3的数组
我想连接具有不同形状的numpy矩阵,以获得维数为3的数组。 例如:Python 合并numpy矩阵以获得维数为3的数组,python,arrays,numpy,matrix,Python,Arrays,Numpy,Matrix,我想连接具有不同形状的numpy矩阵,以获得维数为3的数组。 例如: A= [[2 1 3 4] [2 4 0 6] [9 5 7 4]] B= [[7 2 8 4] [8 6 8 6]] 结果我需要的应该是: C=[[[2 1 3 4] [2 4 0 6] [9 5 7 4]] [[7 2 8 4] [8 6 8 6]]] 感谢您的帮助如果我正确理解您的问题,3dim numpy数组可能不是表示数据的方式,因为没有确定的形状 3dim
A= [[2 1 3 4]
[2 4 0 6]
[9 5 7 4]]
B= [[7 2 8 4]
[8 6 8 6]]
结果我需要的应该是:
C=[[[2 1 3 4]
[2 4 0 6]
[9 5 7 4]]
[[7 2 8 4]
[8 6 8 6]]]
感谢您的帮助如果我正确理解您的问题,3dim numpy数组可能不是表示数据的方式,因为没有确定的形状 3dim numpy数组的形状应为N1 x N2 x N3,而在您的示例中,每个“2dim行”的形状不同
另一种选择是将数据保存在列表(或数组列表)中,或者使用,如果这在您的情况下是合理的。只有在
a.shape==B.shape
的情况下,您才能以有用的方式转换为3Dnp.ndarray
。在这种情况下,您需要做的就是,例如,C=np.array([A,B])
因为
A
和B
有不同的大小(#行),所以您最好创建一个shape(2,)
和dtype对象的数组。或者至少这是一个简单的构造给你的:
In [9]: np.array([A,B])
Out[9]:
array([array([[2, 1, 3, 4],
[2, 4, 0, 6],
[9, 5, 7, 4]]),
array([[7, 2, 8, 4],
[8, 6, 8, 6]])], dtype=object)
但是构建这样的数组并没有多大帮助。只需使用列表[A,B]
import numpy as np
A = np.array([[2, 1, 3, 4],
[9, 5, 7, 4]])
B = np.array([[7, 2, 8, 4],
[8, 6, 8, 6]])
C = np.array([A, B])
print C
np.vstack([A,B])
生成一个(5,4)
数组
np.数组([A[:2,:],B])
给出一个(2,2,4)
数组。或者你可以填充B
,这样它们都是(3,4)
所以,不管怎样,你都需要重新定义你的问题。是的,你是对的,对不起,不应该是一个3D numpy数组!也许最好说我正在寻找一个矩阵数组,或者连接具有不同形状的不同矩阵