在Python中从2D数组选择'area
有没有办法在Python中选择一个二维数组的特定“区域”?我可以用数组切片来提取一行或一列,但我不太确定怎么从一个大的二维数组中选出一个“子数组”。提前谢谢你!杰克
1 个回答
17
如果你在使用 numpy
这个库,你可以利用 numpy
更高级的切片功能来做到这一点,方法如下:
import numpy as np
x = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
print x[0:2, 2:4]
# ^^^ ^^^
# rows cols
# Result:
[[3 4]
[7 8]]
(更多信息可以查看 numpy
的文档)
如果你不想使用 numpy
,你也可以用列表推导式来实现,方法是:
x = [[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]]
print [row[2:4] for row in x[0:2]]
# ^^^ ^^^ select only rows of index 0 or 1
# ^^^ and only columns of index 2 or 3
# Result:
[[3, 4],
[7, 8]]