2012-06-10 117 views
3

我想在Python中提取二維列表(=列表列表)的一部分。我用數學很多,而且有非常方便寫在Python中提取2D列表/矩陣/列表的一部分

matrix[[2;;4,10;;13]] 

這將提取這是第2和第4行以及第10和第13列的矩陣的一部分。

在Python,我只是用

[x[firstcolumn:lastcolumn+1] for x in matrix[firstrow:lastrow+1]] 

有還一個更優雅的或有效的方式做到這一點?

回答

7

你想要的是numpy arrays和切片運算符:

>>> import numpy 

>>> a = numpy.array([[1,2,3],[2,2,2],[5,5,5]]) 
>>> a 
array([[1, 2, 3], 
     [2, 2, 2], 
     [5, 5, 5]]) 

>>> a[0:2,0:2] 
array([[1, 2], 
     [2, 2]]) 
+0

非常好,謝謝! –

+0

@ user1447622 - 不客氣!如果答案有效,你應該通過點擊選中標記來接受它(除非你等待看看是否有其他答案,這非常好 - 我只是以爲我會指出,如果你不知道如何它的工作原理,因爲你是一個新用戶) – weronika

+0

謝謝,我很感激! –