2015-11-23 98 views
0

我想操纵一个数组并执行操作。 我的输入是一个数组python数组操作和重新排列

a= [['f' '0' '1' '0' '1' '0'] 
    ['o' '0' '0' '1' '0' '0'] 
    ['o' '0' '1' '0' '1' '1'] 
    ['!b' '1' '0' '1' '0' '0'] 
    ['a' '0' '0' '1' '0' '0'] 
    ['r' '0' '1' '0' '1' '1']] 

我若第一行中,我的输出应该只是其中1存在的列。同样,我为每一行做输出。所以我的输出应该是一个数组。

output = [['f' '1' '1' 
      'o' '0' '0' 
      'o' '1' '1' 
      '!b' '0' '0' 
      'a' '0' '0' 
      'r' '1' '1' ] 
      ['f' '0' 
      'o' '1' 
      'o' '0' 
      '!b' '1' 
      'a' '1' 
      'r' '0' ] 
      ['f' '1' '1' '0' 
      'o' '0' '0' '0' 
      'o' '1' '1' '1' 
      '!b' '0' '0' '0' 
      'a' '0' '0' '0' 
      'r' '1' '1' '1'] 
      ['f' '0' '0' 
      'o' '0' '1' 
      'o' '0' '0' 
      '!b' '1' '1' 
      'a' '0' '1' 
      'r' '0' '0' ] 
      ['f' '0' 
      'o' '1' 
      'o' '0' 
      '!b' '1' 
      'a' '1' 
      'r' '0' ] 
      ['f' '1' '1' '0' 
      'o' '0' '0' '0' 
      'o' '1' '1' '1' 
      '!b' '0' '0' '0' 
      'a' '0' '0' '0' 
      'r' '1' '1' '1']] 

这里是我的代码

  output = [] 
      for i in a: 
       for j in i: 
        if j == 1: 
         output = a[0:] 
         output.append([n][j]) for n in len(i) 
        else: 
         pass 
+0

你需要提供有关如何输出从输入得到更多的信息。 –

+0

其实它都在那里。对于每一行,生成一个矩阵,该矩阵只有在该行中具有'1'的列。 –

+0

我理解你的问题,但你需要展示你的尝试。 –

回答

1

对于每一行,产生具有唯一具有此行的'1'列的矩阵。

import numpy as np 

a = np.array([['f', '0', '1', '0', '1', '0'], 
    ['o', '0', '0', '1', '0', '0'], 
    ['o', '0', '1', '0', '1', '1'], 
    ['!b', '1', '0', '1', '0', '0'], 
    ['a', '0', '0', '1', '0', '0'], 
    ['r', '0', '1', '0', '1', '1']]) 

l = [] 
for r in a: 
    l.append(a[:, [i for i, c in enumerate(r) if i == 0 or c == '1']]) 
print l 

这可行,但也许有人更熟悉numpy可能会做得更好。

产地:

[array([['f', '1', '1'], 
     ['o', '0', '0'], 
     ['o', '1', '1'], 
     ['!b', '0', '0'], 
     ['a', '0', '0'], 
     ['r', '1', '1']], 
     dtype='|S2'), array([['f', '0'], 
     ['o', '1'], 
     ['o', '0'], 
     ['!b', '1'], 
     ['a', '1'], 
     ['r', '0']], 
     dtype='|S2'), array([['f', '1', '1', '0'], 
     ['o', '0', '0', '0'], 
     ['o', '1', '1', '1'], 
     ['!b', '0', '0', '0'], 
     ['a', '0', '0', '0'], 
     ['r', '1', '1', '1']], 
     dtype='|S2'), array([['f', '0', '0'], 
     ['o', '0', '1'], 
     ['o', '0', '0'], 
     ['!b', '1', '1'], 
     ['a', '0', '1'], 
     ['r', '0', '0']], 
     dtype='|S2'), array([['f', '0'], 
     ['o', '1'], 
     ['o', '0'], 
     ['!b', '1'], 
     ['a', '1'], 
     ['r', '0']], 
     dtype='|S2'), array([['f', '1', '1', '0'], 
     ['o', '0', '0', '0'], 
     ['o', '1', '1', '1'], 
     ['!b', '0', '0', '0'], 
     ['a', '0', '0', '0'], 
     ['r', '1', '1', '1']], 
     dtype='|S2')]