使用 Python 删除矩阵中的每第 n 行或每列

tic*_*fiz 5 python arrays numpy matrix

我正在尝试使用此方法删除 1024x1024 矩阵中的每第 8 列但这需要很多时间,而且当我必须处理数百万个矩阵时会更加困难。您能否告诉我如何使用 numpy、scipy 或任何其他 Python 包删除从特定行或列开始的每第 n 行或每列?

非常感谢

Sau*_*tro 5

您可以使用np.delete给出与每第 8 行索引相对应的索引。让a是一个二维数组或矩阵:

np.delete(a, list(range(0, a.shape[0], 8)), axis=0)
Run Code Online (Sandbox Code Playgroud)

请注意使用axis=0指示沿行操作。沿列操作:

np.delete(a, list(range(0, a.shape[1], 8)), axis=1)
Run Code Online (Sandbox Code Playgroud)