2012-12-17 115 views
2

我想從張量的特定組件中創建一個數組。我發現了美妙的命令np.argwhere()。這將返回滿足特定標準的張量索引,但是它不會將它們命名爲張量的分量,即它們以[0,0,1,1]的形式返回,相對於x[0,0,1,1]的張量爲x張量張量索引與張量名稱

是否有內置或光滑的方法來獲取符合特定條件的張量組分?這些組分是用它們的索引和附着張量的名稱書寫的?

+0

究竟是什麼,你用'X [0,0,1,1]'後?在您的張量'x'中,索引爲[[0,0,1,1]]的位置處的值?或'x [0,0,1,1]'的字符串表示形式? – Jaime

+0

@Jaime這是正確的,該特定組件的值。 –

回答

1

可以使用where代替argwhere ...

>>> x = np.arange(6).reshape(2,3) 
>>> x 
array([[0, 1, 2], 
     [3, 4, 5]]) 
>>> np.argwhere(x > 1) 
array([[0, 2], 
     [1, 0], 
     [1, 1], 
     [1, 2]]) 
>>> np.where(x > 1) 
(array([0, 1, 1, 1]), array([2, 0, 1, 2])) 
>>> x[np.where(x > 1)] 
array([2, 3, 4, 5])