Python 如何在numpy中获取2D数组列的辅因子视图

Python 如何在numpy中获取2D数组列的辅因子视图,python,numpy,numpy-ndarray,Python,Numpy,Numpy Ndarray,我正在使用numpy。 我将矩阵Q定义为二维数组。我希望获得不包含第I个元素的第I列的视图(即,我不希望有副本)。例如,Matlab中的代码是: qi=Q(1:i-1 i+1:end, i) 使用切片的python方法是什么(我不想使用np.delete) 谢谢以下是我的答案: `def partialMatrix(arr, row, col): row -= 1 col -= 1 adjointArr = np.zeros((arr.shape[0]-1, arr.shape[1]-1))

我正在使用numpy。
我将矩阵Q定义为二维数组。我希望获得不包含第I个元素的第I列的视图(即,我不希望有副本)。例如,Matlab中的代码是:

qi=Q(1:i-1 i+1:end, i)
使用切片的python方法是什么(我不想使用np.delete)

谢谢

以下是我的答案:

`def partialMatrix(arr, row, col):
row -= 1
col -= 1
adjointArr = np.zeros((arr.shape[0]-1, arr.shape[1]-1))
r, c = 0, 0
for i in range(len(arr)):
    if i != row:
        for j in range(len(arr)):
            if j != col:
                adjointArr[r][c] = arr[i][j]
                c += 1
        r += 1
        c = 0   
return adjointArr`

`def cofactor(partial, row, col):
return (-1) ** (row + col) * np.linalg.det(partial)`

我怀疑如果没有花哨的索引就无法完成,这需要一个副本(很高兴被证明是错误的)。在这种情况下,你能用对角线上的
0
值来解决吗?还有,如果避免复制的点不是必须的(我必须测试这些方法中的任何一种是否有效),我想我的答案复制了你想要的achieve@purpletentacle
Q
Q
具有不同的
id()
value和
print(np.may\u share\u memory(q,q))
is
False
但我可能对这个问题读得太多了。您一次只需要一行,而不是一次删除所有值?您好,恐怕此解决方案会复制矩阵。此外,所有这些循环可能都不是很有效。