2017-11-11 83 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]])