2015-04-14 66 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) 
相關問題