2012-03-01 55 views
3

我希望從一個矩陣中使用一個「奇特」切片提取行和列,這可能嗎?Simplfy行和列提取,numpy

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

我的目標是

matrix([[1, 3], 
     [7, 9]]) 

當我有項目清單我想

d = [0,2] 

我可以

m[d][:,d] 

實現的功能,但有一個更簡單的表達?

回答

8

可以使用numpy.ix_做到這一點:

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

d = [0,2] 
print m[ix_(d,d)] 

這將發出:

[[1 3] 
[7 9]]