2016-08-24 93 views
0

我已經在MATLAB中創建了一個m乘n的矩陣,並且可以輕鬆地在某個列和行內選擇一個範圍的值。例如,如果我有矩陣A:通過鍵入從第一列1,5和9::Matlab到Python數組的邏輯難度

A = 

0  0  0  0 
1  2  3  4 
5  6  7  8 
9 10 11 12 

我可以隔離值A(2:4,1)。結果將產生[1;5;9]。因爲它涉及到python,我不知道如何索引一個數組,使得我有如上所需的值。

+3

陣列索引開始這是一個numpy的陣列?如果是這樣,它就像在Matlab中一樣簡單。如果沒有,你有沒有考慮使用numpy數組呢? 'np.asarray(X)'。查看[this](http://docs.scipy.org/doc/numpy/user/basics.indexing.html)。 –

+0

不知道爲什麼我不認爲這會起作用,但確實如此。我想我對python使用的不同索引技術感到困惑。例如,如果我想從矩陣A中分離出9,我會輸入A(4,1),但是在Python中,我可以輸入A [3,0]或A [3] [0]。我想我更喜歡哪種技術在什麼情況下使用。 – ColeS

回答

0

這可以使用numpy的

a = numpy.matrix('0 0 0 0; 1 2 3 4; 5 6 7 8; 9 10 11 12')

所需的結果是a[1:,0]a[1:4,0]進行

唯一的區別是從0而不是1。

+0

你應該使用numpy數組而不是numpy矩陣。 Python社區已經圍繞數組進行了標準化,所以他們的支持更加廣泛,並且對於幾乎所有的使用情況,尤其是現在他們有一個矩陣乘法運算符,它們的工作效率更高。 – TheBlackCat