【发布时间】:2014-04-16 22:45:49
【问题描述】:
我有一个关于访问实际上不存在的矩阵位置的问题。
首先,我有一个包含 rows 行和 cols 列的矩阵。从这个矩阵中,我必须得到一组 n x n 子矩阵。例如,要获得 3 x 3 子矩阵,我执行以下操作:
for x, y in product(range(1, matrix.rows-1), range(1, matrix.cols-1)):
bootstrap_3x3 = npr.choice(matrix.data[x-1:x+2, y-1:y+2].flatten(), size=(3, 3), replace=True)
但是,可以看出,我没有考虑极端情况,而且我必须这样做。例如,对于 x = 0 和 y = 0,我应该考虑 matrix.data[x:x+2, y:y+2](中心应该是当前的 x 和 y),返回第一行/列 = 0 的 3 x 3。
我知道我可以通过一些 if 语句来实现这一点。但我想 Python 应该有一个聪明的方法来正确地做到这一点。
提前谢谢你。
【问题讨论】:
-
好的,谢谢。这个stackoverflow.com/questions/7442570/… 也帮助了我。
标签: python numpy matrix multidimensional-array