在Python中提取2D-List / Matrix / List列表的一部分

时间:2012-06-10 17:39:14

标签: python list

我想在Python中提取二维列表(=列表列表)的一部分。我经常使用Mathematica,编写

非常方便
matrix[[2;;4,10;;13]] 

将提取第2行和第4行之间以及第10列和第13列之间的矩阵部分。

在Python中,我刚刚使用了

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

还有一种更优雅或更有效的方法吗?

1 个答案:

答案 0 :(得分:10)

您想要的是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]])