我想在Python中提取二维列表(=列表列表)的一部分。我经常使用Mathematica,编写
非常方便matrix[[2;;4,10;;13]]
将提取第2行和第4行之间以及第10列和第13列之间的矩阵部分。
在Python中,我刚刚使用了
[x[firstcolumn:lastcolumn+1] for x in matrix[firstrow:lastrow+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]])