Is there a way to select a particular 'area' of a 2d array in python?
I can use array slicing to project out only one row or column but I am unsure about how to pick a 'subarray' from the large 2d array.
Thanks in advance
Jack
解决方案
If you are using the numpy library, you can use numpy's more advanced slicing to accomplish this like so:
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]]
(more info in the numpy docs)
If you don't want to use numpy, you can use a list comprehension like this:
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]]
博客探讨了在Python中选取二维数组特定“区域”的方法。若使用numpy库,可借助其高级切片功能;若不使用numpy,也能通过列表推导式实现。文中给出了具体代码示例及操作说明。
2983

被折叠的 条评论
为什么被折叠?



