如何在Python中将不同形状数组的列表转换为numpy数组

时间:2018-03-09 20:10:05

标签: python python-3.x numpy

我有不同形状的3D矩阵。如:

  1. 矩阵形状= [5,10,2048]
  2. 矩阵形状= [5,6,2048]
  3. 矩阵形状= [5,1,2048]
  4. 依旧......

    我想将它们放入大矩阵中,但是当我尝试使用numpy.asarray(list_of_matrix)函数时,我通常会遇到形状错误(因为它们有不同的形状)。

    您对处理此类案件的建议是什么?

    我的实施如下:

    matrices = []
    matrices.append(mat1)
    matrices.append(mat2)
    matrices.append(mat3)
    result_matrix = numpy.asarray(matrices)
    

    并且有形状错误!!

    更新

    我愿意有一个4D的结果矩阵。

    谢谢。

1 个答案:

答案 0 :(得分:0)

我不完全确定这是否适合你,但看起来你的矩阵只是在第一轴上不一致,所以为什么不连接它们呢?

e.g。

>>> import numpy as np
>>> c=np.zeros((5,10,2048))
>>> d=np.zeros((5,6,2048))
>>> e=np.zeros((5,1,2048))
>>> f=np.concatenate((c,d,e),axis=1)
>>> f.shape
(5, 17, 2048)

现在,您必须跟踪第一轴的哪些索引对应哪个矩阵,但这可能对您有用吗?