Simplfy行和列提取,numpy

pou*_*er7 3 python numpy

我希望使用单个"花式"切片从矩阵中提取行和列,这可能吗?

m = matrix([[1, 2, 3],
            [4, 5, 6],
            [7, 8, 9]])
Run Code Online (Sandbox Code Playgroud)

我的目标是

matrix([[1, 3],
        [7, 9]])
Run Code Online (Sandbox Code Playgroud)

我有一份我想要的物品清单

d = [0,2]
Run Code Online (Sandbox Code Playgroud)

我可以实现功能

m[d][:,d]
Run Code Online (Sandbox Code Playgroud)

但是有一个更简单的表达方式吗?

tal*_*ies 8

你可以这样做numpy.ix_:

m = matrix([[1, 2, 3],
            [4, 5, 6],
            [7, 8, 9]])

d = [0,2]
print m[ix_(d,d)]
Run Code Online (Sandbox Code Playgroud)

会发出:

[[1 3]
 [7 9]]
Run Code Online (Sandbox Code Playgroud)