2017-11-11 42 views
0

我想知道我怎麼可以把這個矩陣:入門二維矩陣擺脫第二elemnt的元組

[[(2,1)][(3,1)][(3,2)] 
    [(2,3)][(3,1)]][(11,3)]] 

到:

[(2)][3)][3)] 
    [2][3]][11]] 

就是earising第二要素構造我的矩陣的元組(因此使它成爲標量矩陣)。我想知道如何做與此相反的事情 - 取一個正則矩陣並將它變成一個列表或元組的矩陣。

+0

這個矩陣究竟是什麼?它是元組列表的列表嗎?如果一個numpy數組,它的形狀和dtype是什麼?對象dtype,複合dtype,整數dtype?這真的是你的目標嗎?混合使用'()'和不完整)? – hpaulj

回答

0

假定要刪除的元組和元組的長度的第二個元素是在矩陣常數:

res = [[(y[0],) for y in x] for x in input_array] 
+0

'res = [[(y(0))for y in x] for input in input]'有幾種方式破壞:不要使用Python關鍵字'input'作爲變量名,'y(0)'應該使用sq括號'y [0]',並且爲了使輸出仍然是一個'tuple',你需要一個逗號'(y [0],)'...'[[(y [0],)for y in x] for (2,)],[(3,)],[(3,)],[(2,)],[(3,)],[(11, )]]' – f5r5e5d

+0

感謝輸入編輯我的答案 –

0

你要保持的元組中的嵌套列表或使用的「陣列」 numpy arrays哪些,沒有一些努力,將元組轉換爲一個新的子軸?

1日修復了錯別字/遺漏

b = [[(2,1)],[(3,1)],[(3,2)], 
    [(2,3)],[(3,1)],[(11,3)]] 

名單 '數組' 答:(從我的評論,v.coder '答案')

[[(y[0],) for y in x] for x in b] 

[[(2,)], [(3,)], [(3,)], [(2,)], [(3,)], [(11,)]] 

numpy的陣列答:

a = np.array(b) 

a 

array([[[ 2, 1]], 

     [[ 3, 1]], 

     [[ 3, 2]], 

     [[ 2, 3]], 

     [[ 3, 1]], 

     [[11, 3]]]) 

a.shape 

(6, 1, 2) 


a[...,0] 

array([[ 2], 
     [ 3], 
     [ 3], 
     [ 2], 
     [ 3], 
     [11]])