繁体   English   中英

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

[英]how to convert list of different shape of arrays to numpy array in Python

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

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

等等....

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

您对处理这种情况有何建议?

我的实现如下所示:

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

并有形状错误!

更新

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

谢谢。

我不确定这是否适用于您,但似乎您的矩阵仅沿第一轴不一致,因此为什么不将它们连接起来:

例如

>>> 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)

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

暂无
暂无

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

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