我有一个 NxN 的方阵(N 通常 >500)。它是使用 numpy 数组构造的。
我需要提取一个新矩阵,该矩阵从该矩阵中删除了第 i 列和第 i 行。新矩阵是 (N-1)x(N-1)。
我目前正在使用以下代码来提取这个矩阵:
new_mat = np.delete(old_mat,idx_2_remove,0)
new_mat = np.delete(old_mat,idx_2_remove,1)
我也尝试使用:
row_indices = [i for i in range(0,idx_2_remove)]
row_indices += [i for i in range(idx_2_remove+1,N)]
col_indices = row_indices
rows = [i for i in row_indices for j in col_indices]
cols = [j for i in row_indices for j in col_indices]
old_mat[(rows, cols)].reshape(len(row_indices), len(col_indices))
但我发现这比np.delete()在前者中使用要慢。前者对于我的应用程序来说仍然很慢。
有没有更快的方法来完成我想要的?
编辑 1:似乎以下比上面两个更快,但不是很多:
new_mat = old_mat[row_indices,:][:,col_indices]
料青山看我应如是
相关分类