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]]