2013-02-13 77 views
81

對於蟒蛇如何在python中找到numpy矩陣的長度(或尺寸,大小)?

from numpy import matrix 
A = matrix([[1,2],[3,4]]) 

一個numpy的矩陣我如何才能找到這個矩陣的行(或列)的長度是多少?等同地,我如何知道行數或列數?

到目前爲止,我已經找到了唯一的解決辦法是:分別

len(A) 
len(A[:,1]) 
len(A[1,:]) 

它返回2,2個和1個。從這我收集到,len()將返回行數,所以我可以隨時爲我們轉置,len(A.T),列數。然而,這感覺不令人滿意並且是任意的,因爲當閱讀len(A)行時,這不應該立即顯而易見,它應該返回行數。它實際上的作用與len([1,2])對2D蟒蛇陣列的作用不同,因爲這將返回2.

那麼,有沒有更直觀的方法來查找矩陣的大小,或者這是我擁有的最好的?

+0

numpy維度btw的第一個結果,請嘗試搜索框... – wim 2013-02-13 06:23:22

+1

感謝您指出我的問題!我確實嘗試過搜索,但「numpy matrix dimensions」(或者長度或大小)沒有任何用處。我讀過numpy教程,但是在ndarray部分中介紹了shape,並且我沒有將ndarray的屬性擴展到矩陣的連接。我試圖通過切換到numpy數組來解決我的問題,但是這些沒有矩陣的線性代數性質,進一步使我相信他們沒有共享屬性 – 2013-02-13 06:28:51

回答

163

shape是numpy ndarray和矩陣的一個屬性。

A.shape 

將返回一個元組(m,n),其中m是行數,n是列數。

事實上,numpy的matrix對象是建立在ndarray對象,numpy的的兩個基本對象之一(與通用函數對象一起)的頂部,所以根據the numpy docs收益從ndarray

+2

@root這可能會導致OP勾選'回答你自己的問題''''''' – Volatility 2013-02-13 06:14:03

+4

就在我打開提交我的問題之前,我將其替換爲python,並嘗試了'A.shape',它工作正常。然後我看了看,回答你自己的問題是一個功能。我決定仍然回答它,以防其他人像我一樣卡在它上面 – 2013-02-13 06:15:23

+1

我做過了(在稍微不同的環境下.. SymPy教程中的「形狀」..它究竟是什麼?找到你的問題並得到它..謝謝;-) – Antonello 2015-05-07 13:50:05

18

matrix.size繼承Number of elements in the array.希望有所幫助。

+0

謝謝,但我正在尋找行數或列數,而不是元素總數 – 2013-02-13 06:13:38

+0

快速提示:matrix.size是一個'int'對象,無法調用! – 2014-02-26 20:36:05

+0

請參閱我的編輯... – hd1 2014-02-27 00:38:59