2015-04-14 34 views
1

例如,我想一个2行矩阵,具有长度为1的第一行,并且长度为2我可以做的第二行,如何使用np.array声明具有不同行长度的2维数组?

list1 = np.array([1])  

list2 = np.array([2,3])  

matrix = []  

matrix.append(list1)  

matrix.append(list2)  

matrix = np.array(matrix)  

我不知道是否能直接声明这种形状的矩阵在没有经过上述程序的程序开始时?

+1

你'matrix'是长度不等列表的列表,它不是来自矩阵(至少我的观点)。矩阵由长度相等的行组成。因此,我怀疑可以直接声明这种形状的“矩阵”。你想用这种形状达到什么目的?你还有什么步骤? – plonser

+1

Numpy不支持不齐的数组(或矩阵)。看到这个最近的问题http://stackoverflow.com/q/29517392/553404 – YXD

+0

告诉我们最后的'矩阵'。 – hpaulj

回答

1

矩阵是by definition矩形数组。 NumPy不支持不具有矩形形状的数组。目前,您的代码生成的是一个数组,其中包含一个列表(matrix),其中包含两个以上的数组。

array([array([1]), array([2, 3])], dtype=object) 

我真的没有看到这种形状的目的可能是什么,并会建议您只需使用任何你用这种形状做嵌套列表。如果您发现了一些使用此结构然而NumPy的,你可以更地道产生这样的:

>>> np.array([list1,list2]) 
array([array([1]), array([2, 3])], dtype=object) 
相关问题