【发布时间】:2018-06-28 00:28:55
【问题描述】:
我需要从行/列索引和切片距离中切片一个 2D 输入数组。在下面的示例中,我可以从输入矩阵中提取一个 3x3 子矩阵,但我无法调整此代码以适用于我想要的任何搜索距离,而无需手动记下索引:
例子:
import numpy as np
# create matrix
mat_A = np.arange(100).reshape((10, 10))
row = 5
col = 5
# Build 3x3 matrix around the centre point
matrix_three = ((row - 1, col - 1),
(row, col - 1),
(row + 1, col - 1),
(row - 1, col),
(row, col), # centre point
(row + 1, col),
(row - 1, col + 1),
(row, col + 1),
(row + 1, col + 1))
list_matrix_max_values = []
for loc in matrix_three:
val = mat_A[loc[0]][loc[1]]
list_matrix_max_values.append(val)
submatrix = np.matrix(list_matrix_max_values)
print(submatrix)
返回:
[[44 54 64 45 55 65 46 56 66]]
如果我想在我的行/列索引定义的单元格周围提取一个 5x5 矩阵,我该如何做同样的事情? 提前致谢!
【问题讨论】: