"不使用numpy或zip找到矩阵的子矩阵"

2024-10-06 14:20:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找到一种方法来找到数组X的子矩阵,其中用户提供了输入I和j,如下所示:

def submatrix(X, i, j):

预期的输出应该是矩阵X,没有行i和列j

示例:

X = [[1, 2, 3],
     [4, 5, 6],
     [7, 8, 9]]

子矩阵(X,1,1)

    [[1, 3],
     [7, 9]]

我已经试着自己解决它,但显然没有设法做到这一点,不知道从哪里开始。因此请求帮助


Tags: 方法用户示例def矩阵数组设法submatrix
3条回答

怎么样

def submatrix(X, i, j):
    return [[elem for x, elem in enumerate(row) if x != i]
            for y, row in enumerate(X) if y != j]

X = [[1, 2, 3],
     [4, 5, 6],
     [7, 8, 9]]

print(submatrix(X, 1, 1))

使用for loop

X = [[1, 2, 3],
     [4, 5, 6],
     [7, 8, 9]]

def submatrix(X, i, j):
    X=X[:]
    del(X[i]) # delete the row
    for n in range(len(X)):
        del(X[n][j])  # delete the column elements of the rows
    return X

X_new = submatrix(X, 1, 1)
[[1, 3], [7, 9]]
def submatrix(x, i, j):
    matrix = []
    for row in x[:i] + x[i+1:]:
        matrix.append(row[:j] + row[j+1:])
    return matrix

示例

>>> submatrix([[1, 2, 3],
               [4, 5, 6],
               [7, 8, 9]], 1, 1)
[[1, 3],
 [7, 9]]

>>> submatrix([[1, 2, 3, 4],
               [5, 6, 7, 8],
               [2, 4, 5, 9],
               [9, 6, 4, 3]], 2, 1)
[[1, 3, 4],
 [5, 7, 8],
 [9, 4, 3]]

相关问题 更多 >